Ilya: for the async await lockups, it was initially doing task.result that killed it...it's all the same thread so doing that locked it up if both asyncs were on the same thread.
Also had a case when people would run async methods synchronously and it would deadlock the ui thread.
A lot of the lockups were on the ui thread.
When used right, it's not a bad way to write async code that looks sequential. I prefer Rx though...