Понятно. Пока что нарыл маленькое спасение в виде getTimer(), благодаря которому можно рассчитать разницу задержки. От этого можно плясать, написав свой таймер, который поддерживает паузу. А раз есть таймер с паузой, то можно написать класс менеджер всех таймеров, копирующий работу setInterval и setTimeout, но с возможностью паузы. Это позволит сделать дело практически не меняя код. Но я боюсь как бы не вышло, что я ставлю на паузу, а некоторая часть кода может выполниться не так как-нить. Всё таки 11000 чистых строк кода, а с пробелами и каментами за 15 в голове тяжело держать. Делать по вашему принципу уже поздняк. Вот так вот сначала отсутствие ТЗ, а потом требования, после "это были самые последние требования".
Вообще у разработчиков 3 скрипта хорошая трава. Спасибо хоть за getTimer().
Добавлено через 3 минуты
Кстати, вот этот код с паузой:

Код AS3:
package {
import flash.utils.Timer;
import flash.utils.getTimer;
public class PerfectTimer {
public var _delay:Number;
public var _lastTime:Number;
public var _repeat:Number;
public var _thisTime:Number = 0;
public var timer:Timer;
public function PerfectTimer(delay:Number, repeat:uint=0):void {
_delay = delay;
_repeat = repeat;
timer = new Timer(delay,repeat);
}
public function start():void {
_lastTime = getTimer();
timer.start();
}
public function pause():void {
timer.stop();
_thisTime = getTimer() - _lastTime;
}
public function repeat(new_delay:Number):void {
_lastTime = getTimer();
timer.delay = new_delay;
}
public function resume():void {
if (_thisTime > timer.delay) {
_thisTime = timer.delay;
}
timer.delay -= _thisTime;
_lastTime = getTimer();
timer.start();
_thisTime = 0;
}
}
}