What if one of Xarn's scripts acquires the mutex and then dies?
I'm fine with using a mutex, but provide only a MutexLock object which unlocks the board in the destructor or after a certain timeout. This way we can be safe even if an exception is thrown, FrozenHURR appears, or anything else.