タイムアウトするのが問題なのならば、一フレーム内で全部処理せずに、変数をグローバルにいったん保存して数フレームに分けてみるのはどうでしょう?
最終的な速度は遅くなってしまいますが、タイムアウトはしなくなると思います。
処理を後回しにするタイミングは、getTimerで開始時の時間と比べるなり、繰り返すことになる処理を一回通るたびに加算していく変数を作って一定量超えたら次にまわすとかで。