I've figured out a way to avoid overstocked hospitals. I haven't seen this technique described elsewhere, and it's not on the wiki, but maybe I just didn't use the right search terms...
- Designate your hospital zone with NO containers (chests/coffers/bags) built in it
- Optionally, adjust your hospital zone supply levels. They default to "five of everything", more or less.
- Build ONE container in the hospital zone. Watch as your dwarves rush to fill it, then go idle.
- Repeat step #3, adding one container at a time, until you have enough of everything.
The key is to build containers one at a time, and wait for each to be filled before building the next. This avoids the problem of your dwarves all thinking "omgwtf ten empty containers in the hospital MUST FILL THEM WITH CLOTH" at the same time.
In my current game, I used this technique and set my hospital limits at "three of everything", then gradually built four containers. They now hold four cloth, three thread, four splints, one crutch, no powder (I don't have any), four buckets, and no soap (I don't have any). So I have slightly too much cloth, splints, and buckets, and too few crutches, but all in all it's a very workable hospital. More importantly, the fifth and last container that I placed in the zone is EMPTY, even though I have lots more cloth, thread, splints, buckets, and crutches in my stockpiles. And no mad rush to fill it!