Session Status tool:
- A per-tab status aggregate borrowed the winning session's GUID and
broadcast its clear() globally, so switching workgroup peers evicted
the real session's still-live status from SessionStatusController.
The copyStatus() aggregate no longer broadcasts.
- Rows whose session can't be resolved render blank instead of showing
a recycled cell's content; per-reload session resolution is memoized.
Workgroup lifecycle:
- Track instances by a stable identifier so a workgroup whose leader
already closed can still be exited and torn down instead of leaking.
- Guard mid-spawn teardown reentrancy and close stray spawns so a
member dying during entry can't leak shells or register a ghost.
- Refuse entry consistently across menu, triggers, and controller
through one predicate; restoration uses a counted multiset and a
monotonic soft deadline.
Session lookup and reveal:
- anySessionWithGUID also searches buried peer ports and the workgroup
registry so windowless peers resolve; reveal surfaces them by
retrying the swap or reviving into a window.
Adds ModernTests coverage for the above.