Fixed some deadlock conditions in LongRunningConnection.

The pending queries are now notified that they are cancelled.

In SendQuery there was a chance we could have a QueryInfo dequeued and the
connection closed. When returning from the method if the connection is
closed, we also now notify that the query is cancelled.

Also passing the exception into the ctor of FailureEventArgs instead of null.