Как остановить проигрывание на определенном месте javascript

Имеется функция задача которой, чтобы когда нажата пауза на воспроизведении Song.pause() пользователь нажимает на кнопку, воспроизведение перематывается на определенное время назад и проигрывается ровно столько же на сколько отмоталось и снова становится на паузу. Все получается кроме последнего, воспроизведение не останавливается. Что я делаю не так? Вот код

$('.twosec').on('click', function() {
        if (Song.paused) {
            let timestop = Song.currentTime; //задаю переменную, которая фиксирует текущий момент  
            Song.currentTime = Song.currentTime - 2; //отнимаю 2 секунды
            Song.play();
            if (Song.currentTime == timestop) {
                Song.pause();
            } 
        }
    });

Ответы (2 шт):

Автор решения: NoSkill

Воспроизведение аудио асинхронно и позицию нужно отслеживать:

$('.twosec').on('click', function() {
  if (Song.paused) {

    let timestop = Song.currentTime;

    $(Song).on('timeupdate', function() {
      if (Song.currentTime >= timestop) {
        $(Song).off('timeupdate');
        Song.pause();
        Song.currentTime = timestop;
      }
    });

    Song.currentTime = Math.max(0, Song.currentTime - 2);
    Song.play();

  }
});
→ Ссылка
Автор решения: Олег

Вариант без отслеживания:

var Song = document.getElementById("audio");
$('.twosec').on('click', function() {
let timestop = Song.currentTime; //задаю переменную, которая фиксирует текущий момент  
if (Song.paused) {
    Song.currentTime = Math.max(0, Song.currentTime - 2); //отнимаю 2 секунды
    Song.play();
    setTimeout(function(){
        Song.pause();
    }, (timestop - Song.currentTime) * 1000); 
}
});

→ Ссылка