Timers are not that perfect and not that dependable on frame-rate. Adobe's reference:
You can create Timer objects to run once or repeat at specified intervals to execute code on a schedule. Depending on the SWF file's framerate or the runtime environment (available memory and other factors), the runtime may dispatch events at slightly offset intervals. For example, if a SWF file is set to play at 10 frames per second (fps), which is 100 millisecond intervals, but your timer is set to fire an event at 80 milliseconds, the event will be dispatched close to the 100 millisecond interval. Memory-intensive scripts may also offset the events.
Best practice here is to reset the timer when focus is lost :) It will stop, but remain as an instance, so later on (when on focus again) you can simply use start() to get things running again.