Обзервер для таких задач слишком тяжеловесен. Хватит простой проверки по таймауту:
(function repeat(){
var element = document.getElementById('id');
if(!element) return setTimeout(repeat, 100);
// основной код / вызов основной функции
}());
В целом, конечно,
рони прав, по хорошему надо изменять(подменять) именно саму функцию вызова того окна. Но для юзерскрипта можно не заморачиваться.