[wasm][http] Fix race condition as a result of using TaskCompletionSource: RangeError: Maximum call stack size on Safari (#17946)
There is a race condition on Safari as a result of using TaskCompletionSource that causes a stack exceeded error being thrown during Blazor startup.
Safari throws the following error:
```
[Error] Unhandled Promise Rejection: RangeError: Maximum call stack size exceeded.
step (blazor.webassembly.js:2530)
fulfilled (blazor.webassembly.js:2500)
promiseReactionJob
```
- Modify `WebAssemblyHttpMessageHandler.cs` to create the TaskCompletionSource to run continuations asynchronously.
- `TaskCompletionSource<HttpResponseMessage>(TaskCreationOptions.RunContinuationsAsynchronously);`
- There is a second part to this on AspNetCore in `Renderer.cs` to process it's pending startup tasks to run continuations asynchronously to compliment the TaskCompetionSource of the Http response message.
The following link discusses the potential stack/race problem that can occur when using TaskCompletionSource: https://devblogs.microsoft.com/premier-developer/the-danger-of-taskcompletionsourcet-class/