Вместо setTimeout использовать setInterval
Но только запоминать идентификатор интервала, что бы потом останавливать, когда функция выполняется или выполнена успешно.
Да и у Вас неправилен вызов.
Нужно как-нибудь так:
var iv1;
function myInterrator() {
myobject.activate();
}
iv1= setInterval(myInterrator, 3000);