Right, that's tricky.  In order to avoid missing unrelated local changes, I think we need to continue to use the original max-last-update-time from the fetchSyncContacts() step.  So, next sync, we will need to try to filter out the changes resulting from the storeSyncContacts() update.