I don't really see the problem with the "unlimited capacity" of ships. You can of course have 20 ships at a dock simultaneosly, but that's very poor economy.
Of course heap of 20 ships waiting for same cargo is counter-productive, but many ships waiting for different cargoes while other can unload cargo simultaneously, are rather OP in comparison to road vehicle bays, train station or airports.
Additionally, many ships waiting (no matter for same or different cargo) are hard to manage (hard to check, which one is partially loaded, which one is empty, and which one is which, all collapsed together). Therefore idea of limited dock/buoy capacity is not only for sake of game balance, but also for more convenient use of ships, not counting aesthetic reasons.
For aestethical as well as practical reasons I prefer to route different cargoes via separate docks, like here:
2080_bulk.png [ 160.02 KiB | Viewed 304 times ]
Bauxite and chemicals are loaded at separate docks, while gasoline is being unloaded at the nearest dock.
For checking which ships are loading and which are waiting, I recommend to assign a vehicle group for each route. With most of Andy's ships, for instance, it's extremely simple to check if there's a surplus.
Selection_033.png [ 35.72 KiB | Viewed 304 times ]
You can easily see that ship no. 8 is loading while no. 9 is waiting. However, the overhead in this particular case is so slight that it's better to have a ship briefly waiting, rather than having the cargo waiting for too long.