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.
@jbatte47: Are you not wanting to retain the Obsolete decorators for the time being?