Cover the remaining catch / no-op branches in kernel/src/extensions_manager.dart (duplicate register, unknown activate, activate-throws, deactivate-throws, keybinding unbind on deactivate, `all` getter passthrough) and exercise the SchedulerService event surface (ProjectOpened starts the ticker, ProjectClosed stops it cleanly). Pushes line coverage to 92.73%. Co-Authored-By: Claude <noreply@anthropic.com>