On a starved CPU, jest force-stopped worker processes that could not exit within the 500 ms it allows, and script/lib/jest.js failed the run although every test passed. No test leaks a handle; exit time grows with what a worker holds, 380 to 970 MB at the end of the run. workerIdleMemoryLimit in package.json replaces a worker whose heap is over 200 MB after a test file with a fresh one. tests/jestRunner.test.js runs script/lib/jest.js on a fixture that leaves an interval running and expects the force-stop to fail the run. Model: opus-5-5