Then you should give this a read if you haven't: http://www.cs.indiana.edu/~dfried/ts.ps
tl;dr you can actually generalize trampolining quite a bit in order to get co-operative threading.
tl;dr you can actually generalize trampolining quite a bit in order to get co-operative threading.