Support for running async functions in sync functions

That PR does not give me any idea about the practical use case. Are you trying to run a coroutine function from an asynchronous callback, or worker thread? Which is it?