execution_context v1: user is responsible to unwind the stack
execution_context v2: if the instance of execution_context is destructed while the context is suspended inside the context-fn, the stack is unwound

-> see coroutine2