On a cold start the expired-session tray row created the main window and
emitted EventTriggerLogin immediately, before the React app had mounted and
subscribed, so the login flow silently did nothing. The WindowManager now
queues events per window and flushes them in markReady, mirroring the
pendingTab handling for settings.