non so...prova a levare i 500 millisecondi che dai al setimeout...prova a darli 1 millisecondo e vedi che succede...