He encontrado
información de por qué puede ocurrir ese comportamiento (parece que no es un bug):
Cita: There is only one JavaScript thread per window. Other activities like rendering, downloading etc may be managed by separate threads, with different priorities.
(El resaltado es mío)
En esa web también habla del trick setTimeout( ..., 0 ) para la sincronización de algunas sentencias. Tendré que estudiarla en profundidad.
Un saludo!