HttpURLConnectionで問題が発生していました。getOutputStream()には2〜3秒かかりました。HttpURLConnection.setConnectTimeoutを使用して接続タイムアウトを設定し、getOutputStream()からSocketTimeoutException(IOExceptionでラップ)がスローされることを期待しているため、別のサーバーで操作全体を再試行できます。
代わりに、今は機能します。getOutputStream()は、SocketTimeoutExceptionを受け取った場合、内部的に接続しようとしますか?