Adding a new subscription triggered an infinite loop of JSON fetches
because useSubscriptionSync was subscribing to settingsStore changes,
which caused a cycle: store change → state update → sync → save →
store change.
- Remove settingsStore subscription to break the infinite loop
- Add refs to ensure sync runs only once per component mount
- Enable 5-minute cooldown to prevent redundant syncs