I think, just think, but I guess Khrys will agree, that you are really overcomplicating things for yourself. That MS library does nothing more than we showed. (apart from our omission of restoring, which I pointed out, but hey, that's not really relevant because it is a runtime patch)
There is only one (1) way to create a trampoline and that is patching the entry point. The rest is housekeeping.
If what we wrote did not help you, please provide real code, like we did.
I am afraid you are doing something horribly wrong.
Our code looks simple because it is simple. Maybe not for beginners, but certainly for a software engineer.