Overall the structure is solid — the two-layer worker design, the sync_with_virtuous flag, and the cutoff-based idempotency are all reasonable approaches. But there are real issues worth addressing before merge.
1. mark_gifts_synced uses updated_at, not the reversal timestamp