Потому что не нужно ставить таймеры с нулевой задержкой, если не понимаете зачем это делается.
$(".next-nav").on("click", function () {
setTimeout(() => { // Зачем?
clearInterval(timerId);
}, 0);
startAnimate();
});
Пара видео который могут помочь понимать:
https://www.youtube.com/watch?v=8cV4ZvHXQL4
https://www.youtube.com/watch?v=j4_9BZezSUA