fix(sync): record lastSyncTime after push to prevent echo on next pull
Pushed items were echoing back on the next sync because lastSyncTime was
captured before push started, but the server sets updatedAt=now() during
push — so pushed items had updatedAt > lastSyncTime. Recording the
timestamp after push ensures the high-water mark is after server-side
timestamps. Includes regression test and pre-existing test fixes.