Изменить это:
$(document).ready(function(){
var challegneListener = setInterval("challengeListenerBot()",5000);
});
К этому:
$(document).ready(function(){
challegneListener = setInterval("challengeListenerBot()",5000);
});
Проблема в том, что вы объявляете внутри своей анонимной функции, вызываемой, когда DOM готов, новую переменную challengneListener
. Он скрывает глобальную переменную и сохраняет идентификатор setInterval в локальную переменную, которая является сборщиком мусора, когда завершается выполнение ее вмещающей функции.