Continuing to work on multi-bed situation. I added a feedback loop to object actions so the npc will actually fail the behavior of trying to sleep if the bed is occupied. I postulated that when all of the npcs pick a bed to sleep in, the first bed is unoccupied so they all choose the same one. Natural. But when they get there and it IS occupied, they never know that their sleep action is failing - they just think it hasn't succeeded YET, and keep trying to sleep even though it's not working.
Well, nice try saluk. After adding in this feedback they still crowd around the one bed and don't try any of the others. Search me.