The same problem would happen with a promise. In a desktop the user clicks "Quit". If you now have to call an async function the Quit handler will return and somewhen later the await portion of the code gets called. From the Quit handler you can't tell when the await stuff has finished so there is no clear time when you can shut down the app.
In a browser on or server side it's different.
[1] https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...