Make abort fully synchronous so that timing more accurate.
- Gracefully wait on the connection to end before aborting the request.
Set the reset events on error calling /abort.
Fixed some tests issues.
- Use unique transports per connection since they're disposed now.
- Append custom url to abort request.
- Changed abort timeout to 5 seconds.
Use a regular tcs for the disconnect tcs so that it runs synchronously.
Always abort the request instead of the response to kill connections.
Removed SafeCancellationToken from client.
Add more tracing to client.