elasticsearch/elasticsearch-net — pull request #803 by Mpdreamz (2014-07-17 08:52:36+00:00)
Title: Failover broken when hard exceptions occured when using *Async  methods 

When IConnection throws a hard exception in any of the *Async methods before actual async work has been done the async routines in `Transport.cs` do not properly failover as they only failover properly for tasks in faulted state.

In most cases the exception happens in a way that causes a faulted task to be returned (when reading responses asynchronously) but some of the exception happen earlier with DNS lookups (see #802) these are always synchronously and will throw a hard exception.

This PR also fixes the case where a hard exception during pinging/sniffing using the Async methods could cause a connection not to failover.

The synchronous versions all behave correctly during hard exceptions.