Initiate /start request after a transport is selected in the JS client

- This is how the .NET client already behaves

#3104
Rewrite ProcessStartRequests to not use async/await to avoid deadlocks

- Deadlocks would occur in the old async/await code if someone attached
  to the PreSendRequestHeaders event.