async/await adoption

Removed all Task.Run calls to sync API. This just creates a new thread
that then sits and waits, which is not ideal. Used async/await instead
which does not require extra threads.
It is possible to use the coalesce operator "??" instead, but as @jlmorgan mentioned some people feel that is less readable. I personally am on the fence on that one. Since this is your code base I would defer to your conventions.

I apologize for the tabs. My workplace has standardized on tabs instead of spaces so my settings in VS are set accordingly and I did not notice.