Вот переписанный пример
http://learn.javascript.ru/play/Ubsz0b
1) Я сохранил слабую связанность view и контролера.
2) Убрал dom элементы из модели
3) переложил работу с таймерами на модель
4) Убрал мусор из глобальный области видимости (ссылки на уже созданные экземпляры сделал статическим свойством singleton)
Примерно так получилось
Только одно исключение. Это то что у меня модель может сама менять свое состояние из за таймера, что на мой взгляд вполне допустимо.