If you are concerned that the timer-tick action may alter some data that is being alerady operated upon, so producing an inconsistent result, I suggest that you protect it explicitly. Presumably (!) it is not difficult to set a global boolean at the start of the button operation, and cancel it at the finish. Then if a tick event finds the boolean set either the event is ignored (if another tick will subsequently substitute) or some separate flag is set to indicate a postponement.
Typically it was useful, if going to the operating system to fetch data, to be able to accept interrupts such as timers in the interim. This makes it possible to arrange a timeout so that a slow fetch does not hang the program.
Mike.