Agreed on all of this Houseboot. They don't have a predictable, manageable customer flow and I'm sure numerous environmental factors such as weather influence their business, as well as longer-term factors such as disposable income, and closeness to pay-day.
As you said, offering to wait or to see someone else is a reasonable way to manage that.
Likewise, they could do themselves a favour by managing expectations at the time of booking, and stating (what should be the obvious) to customers, reminding them they can't guarantee the SP of choice at a particular time, and they may have to wait to see a specific SP. This would be a better approach than confirming a booking then disappointing the customer with a different SP. I'd also add that language barriers sometimes don't help with these misunderstandings.
A bit of give and take on both sides and some common sense should sort out any issues like this.
