В коде у вас работа с таймерами сделана неверно. Кажется, что вы предполагаете, что при записи переменной таймер предыдущий уничтожается - но это работает по другому. Что происходит - это то, что функции intro_start и intro_start2 никогда не останавливаются. Каждый запуск lines порождает еще один "поток" intro_start и intro_start2. Поскольку они меняют глобальные переменные, то перемещение происходит все быстрее и быстрее.
Чуть исправить и будет ок:
https://codepen.io/AlexNetkachov/pen/wRrdOL?editor...