Falls Du weitreichende Rechte auf dem Zielrechner hast und etwas Zeit zur Analyse, könntest Du evtl Speicherbereiche des fremden Dienstes auf Unterschiede in Intervallen prüfen, in sich denen bei normalem Ablauf etwas ändert. Oder Du erstellst einen Task, der den Dienst "vorsorglich" regelmäßig über sc.exe neu startet.
EDIT:
Diese Unit habe ich mal selber eingesetzt, um ggf. einen Thread auszubremsen. Um den Prozentsatz der Auslastung festzustellen, muss das result von wsGetCpuUsage noch durch die Anzahl der Prozessoren geteilt werden.