GlobalRuntime mounted ViewerPortal on the first OPEN_VIEWER request but returned before replaying it, and ViewerPortal (an async component) was not listening yet. Queue the boot event and replay it when ViewerPortal emits ready, keeping the same detail object so handled is reported back.