if (clickNumbers < 10) {
clearInterval(moveInterval);
var moveIntervalSecond = setInterval(moveHeading, fast = fast*0.5 );
$("#heading").text(clickNumbers);
clickNumbers++;
}
Вы moveInterval очищаете, а moveIntervalSecond - нет. Просто переназначаете. Но старые вызовы продолжают работать.
Зачем вообще нужен moveIntervalSecond?