надеюсь общую идею ты понял)
Мое решение было немного иным....
Я не знал об утечке, пока мы не пришли почти к продакшену... Когда мы это все выкатили, к нам прибежали SEO-шники и сказали что сайт плохо работат, ибо их краулер, которого они натравилии с частотой в 100мс почему-то получает 502ю ошибку...
Но т.к. релизить надо было срочно и все это у нас крутилось через pm2, то было принято решение(после нескольких дней тестинга нагрузочным тестированием) запускать наше чудо-юдо в режиме кластера (аж из 2х инстансов ибо больше железно не позволяло),
также добавлено ограничение по памяти (если pm2 ребутит по ограничению - то время простоя 1с, если зервак лежит после утечки - то ребут 5-10 сек ). Вот так это и прошло нагрузку кроулера, пока 1 инстанс перезагружался - 2й героически держал оборону, потом наоборот. В общем за несколько часов наблюдения не было ни одного момента чтоб оба инстанса лежали.