The WebSocketClient should throw an OperationCanceledException instead of trying to connect and then cancelling.
using (var clientSocket = new ClientWebSocket())
{
var cts = new CancellationTokenSource();
cts.Cancel();
Task t = clientSocket.ConnectAsync(new Uri("ws://" + Guid.NewGuid().ToString("N")), cts.Token);
}