Patients are hungry and thirsty

Your problem may indeed be related to patient AI.

The best way to figure out what's going on is to follow a patient through your hospital.

Patients are able to join multiple queues in Two point Hospital. They prioritize their needs over going to see doctors or getting cured. They will also wait on another patient that are in front of them in their queue, regardless of where in the hospital the other patient is.

A patient may decide they're hungry, queue for a vending machine, figure out they're thirsty while waiting in that queue, go on a trip to far far away to get their drink, and make everyone behind them in the vending machine queue very hungry.

There's not much you can do about it, it's just not a very well designed system. There's 3 pieces of advice:

  1. Do not build a variety of items. Stick with only one type of food, only one type of drink, only one type of amusement. Otherwise, patients will go on long trips to get whichever thing they randomly decided they want.
  2. If you have a bunch of queues, send a large portion of your patients home (or even all of them, if you can afford it), increase whichever things have the biggest queues, then see if your hospital stabilizes.
  3. Just don't fulfill your patients needs at all. Limit toilets to staff only, build food, drink only in staff rooms. This'll work if you can simply cure them before they get angry enough.

As a bonus for point (3), you'll find the game becomes much easier, because your doctors are so much more efficient you'll need half as much diagnosis and cure rooms or less for the same amount of patients, so your profits will soar.

Queues spiral out of control and lead to even more queues. At some point you would need more than 1 vending machine per 2 patients.