A build server that slows to a crawl every few days until someone restarts it usually has a suite leaking browser processes. Each run leaves a handful behind. After a week there are hundreds.
Cypress and Playwright manage the browser for you. Selenium does not, and this is where that costs you.
The rule: every browser you start must be stopped, including when the test fails.
The naive version has a bug: