Updated retry logic and longer initial connection timeout
Retry logic will now correctly retry the actual underlying connection instead of repeatedly checking if it should open a new connection. Retry now uses ceiling'd exponential backoff with jitter to prevent flooding. Default timeout for opening the initial TCP connection to the exchange increased from 500ms to 5000ms.