Callback based, simplified async/await

I proposed something similar 4 years later: Zero-overhead Async/Await