Recentemente, descobri que o Safari está matando window.setTimeout quando o usuário está rolando ou arrastando a tela do navegador. Isso está acontecendo apenas no iOS6 e não está afetando as versões mais antigas do sistema operacional.
Para lidar com esse comportamento, você precisa esperar que a Apple conserte o bug ou reimplemente as funções do temporizador JavaScript por conta própria, por exemplo, use este GIST: https://gist.github.com/3755461