хорошо, семафор хорош, если вы хотите ограничить количество экземпляров, но в этом случае вы не хотите, вы хотите сделать очень простой IPC. Если бы это было моим требованием, я бы добавил службу WCF, связанную с локальным или именованным каналом.
при запуске попытайтесь подключиться к нему и выяснить, какой пользователь вошел в систему, если вы не можете подключиться к нему, запустите сервер. Вам также понадобится какой-то механизм для другого экземпляра, который займет роль сервера в случае, если пользователь закроет экземпляр, на котором размещается служба.