Function.createCallback não passa o contexto corretamente no FireFox

Eu descobri o que parece ser um bug na maneira como a biblioteca MS AJAX interage com o FireFox - mas talvez eu esteja fazendo errado. Eu tenho um script que se parece com isso:

    dowork({ value: "some value", currentRetry: 0 });

    // Try to connect at least 10 times, with a second in-between retries..
    function dowork(request) {
        if (request.currentRetry < 10) {
            logMessage('currentRetry = ' + request.currentRetry + '; trying again in 1 second.');
            request.currentRetry++;
            var callback = Function.createCallback(dowork, { value: request.context, currentRetry: request.currentRetry });
            setTimeout(callback, 1000);
        }
        else {
            logMessage('Exceeded retries; currentRetry = ' + request.currentRetry);
        }
    }

Em outras palavras, estou tentando fazer algo que provavelmente falhará periodicamente, então quero tentar, digamos, 10 vezes, com um segundo intervalo. A única maneira de descobrir como fazer isso é usar algo como o bit Function.createCallback da biblioteca MS Aja

E isso funciona corretamente, por exemplo, no IE 8 e no Chrome 2, ou seja, produz a seguinte saída:

currentRetry = 0; tentando novamente em 1 segundo.
currentRetry = 1; tentando novamente em 1 segundo.
currentRetry = 2; tentando novamente em 1 segundo.
currentRetry = 3; tentando novamente em 1 segundo.
currentRetry = 4; tentando novamente em 1 segundo.
currentRetry = 5; tentando novamente em 1 segundo.
currentRetry = 6; tentando novamente em 1 segundo.
currentRetry = 7; tentando novamente em 1 segundo.
currentRetry = 8; tentando novamente em 1 segundo.
currentRetry = 9; tentando novamente em 1 segundo.
entativas @Exceeded; currentRetry = 10

No entanto, no FireFox (versão 3.5, não o testou em outros sabores), a saída é assim:

currentRetry = 0; tentando novamente em 1 segundo. Tentativas excedidas; currentRetry = indefinido

Pensamentos sobre uma solução alternativa ou sobre o que estou fazendo de errad

questionAnswers(2)

yourAnswerToTheQuestion