Pre-fetch ServiceWorkerRegistration into component state via useEffect in both PushPermissionPrompt and SettingsSheet. Gate the subscribe tap target as disabled until both vapidKey AND swRegistration are ready. The tap handler now has zero awaits between the user gesture and registration.pushManager.subscribe(), fully satisfying the iOS user-gesture requirement.