Replace the give-up-after-3-retries path with a persistent background scheduler: 10 retries every 30s (5 min), then 12 retries every 5 min (1 hr). Active timers are keyed by origin so rapid password changes cancel and replace the previous loop. All timers are cleared on logout via clearPasswordSyncTimers() called from instanceStore.reset().