E` un problema noto, che il multitasking ha qualche problema con Windows. In particolare fino al Win2000/NT non esisteva un vero multitasking. Ora con XP dovrebbe essre migliorato, ma in linea di massima la microsoft preferisce la retrocompatibilita` rispetto alle innovazioni.
Per cui non mi meraviglia il comportamento da te descritto.
Esiste l'evento onfocus, ed esiste l'evento onblur. Con questi puoi giocarci.
Esempio 1 (da non implementare):
onblur="this.focus();"
Esempio 2 (da studiare e testare):
onfocus="if(rip) {clearTimeout(rip); rip=setTimeout("....");}"
dove la variabile rip deve essere definita globale al momento in cui la usi per la prima volta;
il clearTimeout() serve per eliminare l'eventuale Timeout che stesse girando, prima di farlo ripartire.