If await_suspend returns a coroutine_handle, as in the example below:
coroutine_handle<> await_suspend(coroutine_handle<> h) { coro.promise().waiter = h; return coro; }
suspensionExpression processing will resume the coroutine pointed at by that handle.
Related LLVM change rL311751 makes resume calls of this kind musttail at any optimization level.
This enables unlimited symmetric control transfer from coroutine to coroutine without blowing up the stack.