fix: restore existing PushSubscription on page load master
Greptile flagged that initPushNotifications didn't restore an existing PushSubscription into the store. The browser keeps subscriptions across reloads (and the server still has the row), but the Zustand store isn't persisted — so after a reload notificationToken was null, the toggle showed "off", and the user appeared unsubscribed despite still receiving pushes. Now initPushNotifications calls pushManager.getSubscription() after the service worker is ready and restores any existing subscription into the store. This mirrors the native path, where the FCM token is re-acquired on startup. enableWebNotifications remains safe to call on top of an existing subscription — pushManager.subscribe() is idempotent and returns the existing subscription rather than creating a duplicate. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>