It will be easier to avoid first chance exceptions if a NoThrowAwaitable extension method can be added for MainThreadAwaitable. The Boolean result of this custom awaitable would be true if the continuation executes on the main thread, and false if the continuation happened on any other thread.