При запуске таймера несколько раз интервалы накладываются. Надо очищать.
<input value='5' id='t'>
<input type='button' value='Go' onclick='clearInterval(window.k);r.innerHTML=t.value;k=setInterval(()=>!--r.innerHTML&&(clearInterval(k)||alert("Done!")),1e3)'>
<div id='r'></div>