Das ist mir bisher (über etliche Jahre hinweg) noch bei keinem Dienst mit Timersteuerung passiert.
Das ist auch nicht so leicht möglich, mit einem TService im Delphi.
Ein TTimer erstellt ein eigenes MessageOnly-Window (
AllocateHWnd) im Hauptthread (HInstance), über welches die Timer-Messages laufen.
TService erstellt einen Thread (TServiceStartThread), in dem der
StartServiceCtrlDispatcher gestartet wird, da diese Funktion bis zum Programmende nicht zurückkehrt.
Darin wird dann ein weiterer Thread gestartet, in dem der Service arbeitet (TService.Execute)
Und bei weiteren Servern ala REST, HTTP, DataSnap oder sonstwas, landen die Aufrufe nochmals in weiteren Threads.
Ohne Synchronize oder eine Message an den Hauptthread (PostThreadMessage), oder an ein Fenster des Hauptthreads (SendMessage/PostMessage), arbeitet somit niemand "permanent" im Hauptthread.
Demnach ist die Wahrscheinlichkeit geringer, dass die Message des Timer nicht verarbeitet werden kann, aber wenn doch, dann ist es die Schuld des Entwicklers.