Async/await can be used to implement coroutines, but IIRC only if you wrap all of the code that might be called in async/await as well, and this catch makes them practically useless. Why not just provide proper coroutines?
While we're at it why coroutines? You can implement coroutines, generators, even try/catch and return given continuations [0].