subscribeToZswapEvents
Subscribe to zswap events using dedicated WebSocket (not shared with unshielded).
open so tests can substitute a deterministic event source (the production body opens a real WebSocket); see ShieldedRepositorySyncPlanInstrumentedTest.