I’m running into the same issue with contacts. In my case, it is my own davical server; in manual tests (with telnet) replaying the same request that davical timeouts on, the contacts PROPFIND with Depth 1 takes about 90 seconds of returning no data, and then suddenly the whole data is sent in less than one second.
I changed the timeout in the source and rebuilt, now it seems to work. However, because “signed by other key”, I cannot go back to the F-Droid build without destroying the data and running into the same “initial sync timeout” problem again… Making the timeout configurable, or very big, seems adequate to me as a solution.
Here’s the request that takes 90s to return data:
PROPFIND /caldav.php/user/addressbook/ HTTP/1.1
Content-Type: text/xml; charset=UTF-8
Depth: 1
Content-Length: 134
Host: server
Connection: Keep-Alive
User-Agent: DAVdroid/0.6.2
Authorization: Basic XXXXXXXXXXXXXXXXXXx
<propfind xmlns="DAV:">
<prop>
<CS:getctag xmlns:CS="http://calendarserver.org/ns/"/>
<getetag/>
</prop>
</propfind>