Комрад
myakushka прав. Для целевого объекта должно быть по барабану что вызвало завершение хода. Будь то TimerEvent, интерактивность пользователя или серверная команда. Значит, ни о каких таймерах завершения хода он не должен знать, а тем более их перезапускать. У него есть один метод, через который можно оповестить объект о завершении хода:

Код AS3:
ВашОбъект#ходComplete()
А вот что будет вызывать этот метод? Я думаю что другой объект, подписанный на TimerEvent, user interaction, whatever else. И именно в этом объекте-контроллере будут способы остановить Timer, отписаться от сервера и от клавиатуры.
Сохраняйте
принцип единственной ответственности, как бы это сложно не было.
Ну я не вижу необходимости расширять для вашей задачи нативный Timer.