Well, parrot uses CPS (continuation passing style) for control flow, and I'm pretty sure it's stackless in the sense that a call to HLL function doesn't imply a function call (which would use the stack) in the vm. So it's easy to implement language-level coroutines efficiently.