Also der Timer läuft unabhängig vom restlichen Programm weiter. Da du im Interrupt 2 Sekunden wartest, kann das Programm 40 mal (2s*20Hz) nicht in die Routine springen, da es sich schon darin befindet. Sobald er wieder ins Hauptprogramm springt kommt nach spätesten 1/20 Sekunde der nächste Interrupt. Da das mit Augenmaß wohl nicht zu erfassen sein wird kommst du auf deine 2 Sekunden.
Hoffe ich rede keinen Müll, dann verbessert mich.

mfg milkbubi