While the hardware part of the job is nicely done, I think there still remains the problem of how to convey the information to the users.
Once a toilet becomes free, everybody waiting will try to aquire the ressource (ie: do a costly walk to the bathroom).
There must already be some gaming theory or performance modelling result that solves this issue, though.
Just a simple idea would be to add a random delay for propagating the information to different users.