Мутекс - это путь. Это гораздо менее хрупко, чем использование имен процессов и т. Д.
Однако вы должны убедиться, что Mutex не является сборщиком мусора. В случае службы (которая управляется событиями, а не имеет "основного" метода, который выполняется до конца), наиболее разумный способ сделать это, вероятно, поместить его в статическую переменную.
Утилизируйте мьютекс, когда служба останавливается, поэтому вам не нужно ждать завершения или чего-то подобного.