The recent sync changes to avoid blocking forever depend on thread interrupts which it turns out jdbc doesn't always respect. Rework the timeouts to avoid depending on interrupts.
Recommend the chapter in the "train book" (Java Concurrency in Practice) on "Cancellation and Shutdown" for background, for anyone not already familiar with the expectations -- briefly, thread interruption is cooperative, and it turns out the jdbc driver (perhaps intentionally) doesn't cooperate.
The current plan is to adjust the pull-records-from-remote code to replace interruption with (diminishing) in-transaction timeouts in all the relevant transactions (remote summary query, batch transfer process, etc.). Ideally, the timeout should be based on the entity-ttl, and should be reduced after each command to respect the overall ttl as the sync process proceeds.