Я никоим образом не являюсь экспертом jQuery / JS, и это не рабочий пример, но это может помочь вам указать верное направление.
Вместо setTimeout я использовал setInterval.При наведении курсора очистите интервал, чтобы он не срабатывал снова.При отпускании мыши подождите 6 секунд и запустите функцию doRotate (), которая снова запустит таймер и загрузит новое объявление.
function doRotate() {
next();
theInterval = setInterval(doRotate, 6000);
}
$('#myAdElement').mouseenter(function() {
clearInterval(theInterval)
})
$('#myAdElement').mouseleave(function() {
setTimeout(function() {
doRotate();
}, 6000);
})