AsyncIsHard - fixing a deadlock in EndToEnd tests

One of the EndToEnd tests was blocking in a continuation that was run synchronously which caused a deadlock and test failures. The fix is to wait asynchronously.
Brute force approach... I like it :smile:

We could consider switching to using `SemaphoreSlim` which supports async wait instead of doing blocking waits with MRE/WH in tests but this works fine.