Ein Timer wird ggf. ein paar Sekunden nicht ausgeführt, das ändert aber an der Genauigkeit deiner Differenzberechnung ja nichts. Soll der Timer auch unabhängig von der Oberfläche weiterlaufen, dann bleibt nur ein Thread, aber ich sehe darin keinen Sinn.
Die Differenz kannst du einfach mit MinutesBetween etc, aus der
Unit DateUtils berechnen.