i think this is not your problem.
This is language issue. Mainly due to they have two ways competing to write async statement. By async, I mean we want to regain the sync mode of writing.
The compiler programmer need to read this thread, and try to figure out what's the best way for us to stay in sane. I refuse to learn things that I don't have interest in learning.
This is waste of time, not your post, your post is valuable, the trick is unlearnable. Because after reading it, I don't remember anything that i read.