I checked the source and found the following:
Once a timer completes, it just seems to mark itself as 'complete' and fires the callback defined. So in the scene's list of timers to update, it does not remove itself from any scene. I can't really tell but I think they just keep updating doing nothing in the background.
You can use isTimerActive(timer) to find out whether a timer is still active and either scene.cancelTimer(timer) or timer.cancel() to safely remove it if it's the case. I think you might also be able to use cancelTimer() at the end of your callback, or limit the amount of timers you use and make use of its looping mechanism instead.