Services абсолютно самодостаточен.

Поставьте в главной процедуре приложения LOOP Services.actionHook.Loop END - и всё. Этот хук порождается прямо внутри Services.

Ну, надо будет разбавить такой жадный цикл WinApi.Sleep(1) "по вкусу" (обычно от нагрузки; если нагрузка есть, то не спим, если пропала, то разбавляем).