Right now, disposing of the subscription to a query just sets cancelRequested to true on the connection.
This causes cancellations to be delayed until an onData event on the underlying socket.
The cancellation request should be done immediately as there is no point in waiting for any data that may be in process as we are not going to provide it to the observer that has already asked us to stop sending rows.