Window factories register closing hooks that re-enter the WindowManager and
take s.mu, and Wails may dispatch synchronously onto the main thread during
construction, so holding s.mu across a factory can deadlock. A dedicated
createMu serializes lazy creation instead: the slot is read and published
under s.mu, but the factory runs unlocked. MainWindow and OpenSettings share
the new ensureWindow path.