It's unclear to me how an app crashing would take the session down in this case. Could you elaborate?
The most obvious example would be the debugger attaching to a thread that's holding the shared mutex.
Is there some other server provided mechanism that would be preferable to use?
The registry, as mentioned by @bernon, is the easiest one. We could also store more of that information directly in server objects. This would most likely be handled in the generic code so that all drivers benefit.