It's All About the SynchronizationContext
Await, and UI, and deadlocks! Oh my!
Best Practices in Asynchronous Programming
[HttpClient.GetAsync(…) never returns when using await/async] (http://stackoverflow.com/questions/10343632/httpclient-getasync-never-returns-when-using-await-async)