Бывает так, что от сервера приходит 0, в это время таймер идти не должен.
// каждые 3 секунды, когда парсится ответ от сервера
if(data.is_started != false & data.is_closed == false) {
if($countdown != 0 & timer == null)
timer = setTimeout(countdown, 996);
}
// отдельная функция
function countdown() {
$countdown--;
console.log($countdown);
var minutes = ($countdown / 60).toFixed(0);
var seconds = $countdown % 60;
$('#timer').html(minutes + ':' + seconds);
if($countdown == 0) {
clearTimeout(timer);
timer = null;
} else {
timer = setTimeout(countdown, 996);
}
}