I too use a small device to serve owncloud calendar and contact data. I wonder if it would be possible to do one of the following:
Make the connection timeout configurable by the user:
(HttpUrlConnection) conn.setConnectTimeout(sec * 1000);
Just set a longer timeout:
(HttpUrlConnection) conn.setConnectTimeout(300 * 1000);
Do an exponential- or linear-style backoff if the connection gets java.net.SocketTimeoutException; start with 60sec (remember, this is a maximum timeout), and go up by there.