"Скрытые замыкания", ЕМНИП, это страшилка времен IE6-8.
Я упростил ваш код до такого и он работает:
function Some() {
this.id = Math.floor(Math.random() * 1000);
this.timer = setInterval(() => {
console.log('чем-то гажу в консоль');
}, 1000 * 1);
this.stop = () => {
console.log(this); // тут видно, что контекст действительно правильный
clearInterval(this.timer);
};
}
const some0 = new Some();
setTimeout(() => {
some0.stop();
}, 3000);
Замечу, однако, что в вашем коде функция Some не закрыта и включает в себя app.route и прочее, то есть вы не рассказываете всей правды и понять, что же именно не так, довольно трудно.
Еще у вас pool это массив, а используется как объект. Плюс вы используете стрелочные функции, но эмулируете класс через стремные костыли.