Detectar si otra instancia de la aplicación ya se está ejecutando

Mi aplicación debe comportarse de manera ligeramente diferente cuando se carga si ya hay una instancia ejecutándose.

Entiendo cómo usar un mutex para evitar la carga de instancias adicionales, pero eso no resuelve mi problema.

Por ejemplo:

La instancia 1 se carga, obtiene el mutex.La instancia 2 se carga, no puede obtener el mutex, sabe que hay otra instancia. Hasta aquí todo bien.La instancia 1 se cierra, libera el mutex.La instancia 3 se carga, obtiene el mutex, no sabe que la instancia 2 todavía se está ejecutando.

¿Algunas ideas? Afortunadamente, no necesita lidiar con múltiples cuentas de usuario ni nada de eso.

(C #, aplicación de escritorio)

Editar: para aclarar, la aplicación no necesita estar restringida a una sola instancia, solo realice una acción de inicio ligeramente diferente si ya hay otra instancia ejecutándose. Varias instancias están bien (y se esperan).