FastMail support got back to me & they were able to isolate the problem I’m seeing to what the aCalendar devs are calling the ‘Sync Adapter’, which I’m assuming is DAVDroid.
The specific logs in question are as follows:
2018-11-15T03:36:25-05:00 imap3 sloti3d1t15/httpcaldav: frontend1.nyi.internal [10.202.2.160] as "firstname.lastname@example.org" with "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1 Lightning/18.104.22.168"; "PUT /dav/calendars/user/name%40domain.com/b160c0f1-0b45-44d3-967b-dcaf9e52d49d/e93e6404-85ef-4f4a-a4a5-084a3546267b.ics HTTP/1.0" (auth=Basic; if-match="9ff998eed5fd3af98ab2df305d97f98a8cd5593d") => "HTTP/1.0 204 No Content" [timing: cmd=0.024581 net=0.002257 total=0.026838]
2018-11-15T03:48:51-05:00 imap3 sloti3d1t15/httpcaldav: frontend2.nyi.internal [10.202.2.161] as email@example.com" with "DAVdroid/2.0.5-gplay (2018/11/04; dav4android; okhttp/3.11.0) Android/7.0"; "PUT /firstname.lastname@example.org/b160c0f1-0b45-44d3-967b-dcaf9e52d49d/e93e6404-85ef-4f4a-a4a5-084a3546267b.ics HTTP/1.0" (auth=Basic; if-match="9ff998eed5fd3af98ab2df305d97f98a8cd5593d") => "HTTP/1.0 412 Precondition Failed" [timing: cmd=0.002103 net=0.000003 total=0.002106]
The first is showing the modification of an existing task (with last seen etag “9ff998eed…”). The modification succeeds, and so the etag changes. Then, 12 minutes later, the client tries to modify the same task again, using the same etag as before. But that’s no longer valid for that task, so the request fails.