This is about the experience with asynchronous execution in Midori (a research OS written at Microsoft in a C#-like language, which was later turned into a playground for features to be added to C#):
http://joeduffyblog.com/2015/11/19/asynchronous-everything/ Some parts will definitely ring a bell, because the QEMU block layer has the same distinction between "await" and "async", only calls them bdrv_co_* and bdrv_aio_*. Paolo