Add killServer() that sends SIGTERM via UtilityProcess.kill(), waits up to 3s, then escalates to SIGKILL via process.kill(pid). Fixes window-all-closed to await shutdown before quitting, and uses a persistent isQuitting flag in before-quit to prevent infinite loops. Closes #51 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>