Написание отдельного сервиса кажется излишним.
Сначала вы можете получить объект Process, скажем, Process.GetProcessesByName или, что лучше, использовать ProcessID процесса, который вы хотите отслеживать, если он у вас есть. Затем вы можете попробовать получить WaitHandle из него, как обсуждено например. здесь , затем вызовите на нем WaitOne (или WaitAll, если вы отслеживаете несколько экземпляров).