This is gonna be a bit lengthy, but thanks for looking at this, since the Cargo Ships mod is super cool. I will try and come with a bunch of different input, so pick and choose as you see fit, I will happily help test out some stuff if you want.
You have a point regarding the shallow water, and making it differentiate there is gonna be a massive headache. The issue is, that Alien Biomes also adds additional shallow water variants, and those are NOT affected by Noxys Swimming mod at all, which means that the swimming mod only affects speeds on vanilla shallow and deep water, any other mod that adds additional water tiles, will not be modified by Noxys Swimming. To be fair, the Cargo Ships should not be able to sail across these added shallow water tiles, as they look like ankle deep water, as you can see the sand beneath. This does mean though, that if you set Noxys Swimming modifiers higher than defaults, then you speed up significantly when "swimming" in vanilla water, whereas sand, snow and shallow water from Alien Biomes will slow you down drastically.
To be fair, those tiles cannot be placed anyway, so it isn't a massive issue, and also something Noxys should address in their mod anyway - but thought I would mention it at least. Personally, I would be fine just setting both deep and shallow water swimming to the same modifier in Noxys swimming, as the slower speeds on deep water is a very game-y way of allowing cars to "swim", which is something you can toggle anyway, so that you can only swim in shallow water. For water based world gen however, you really want biters and yourself to be able to swim in deep water too tho.
I did some early game speed tests for vehicles driving on water, with Noxys swimming speed set to 1.0 for shallow and deep, and cargo ships with a modifier of 2
Tugboat does 31 km/h
Monowheel from IR2 does 48.9 km/h
vanilla car does 47.7
First off, I understand that tug boats are supposed to be slow, but from a game mechanic/progression side, it would be neat to have an early game water based vehicle that at least is comparable to that of land based vehicles, maybe one without an inventory, or a smaller one maybe?
For context, I am currently playing an Island World playthrough (https://mods.factorio.com/mod/islands_world), and the slow speed of the tug boat makes it a chore to use. I am also running Industrial Revolution 2, which allows for a monowheel as an early game alternative, and tug boats are now so far along the research tree, that I wont have any reason to use them once unlocked, due to how the movement speeds work out. Allowing the bugs to swim also means you have to protect all around the shoreline in the starting area, as they could come from anywhere across the sea. When that happens, it also means there is a lot of "swimming" required to get to the other side of the water, so you can take out alien bases and erect some defensive outposts. If I were restricted to using the tug boat at default Cargo Ships speed, then I would not have been able to keep up with the alien attacks, even when the Noxys Swimming modifiers are set to 1. There is simply so much traveling back and forth around your base defences and outer outposts, that you would never get anything done to progress your factory and research.
Going back to the swimming mod, I think the default modifier is about 0.45 for deep and 0.35 for shallow? I cannot quite remember. But assuming that, it would mean that for Cargo Ships, it would be nice to allow for at least ~5.0. That said, is there any reason not to allow a max modifier at around ~8, and then just let players fiddle with the numbers to their liking? I don't remember, but do the cargo ships benefit from stuff like braking speed modifiers for the trains?
At any rate, if land based vehicles end up being slowed down significantly in water, boats will obviously become more preferable. But having played on a map with a lot of water for a while now, I can say it would be annoying to play, if the tug boats, or some other early game vehicle, would not be as fast as a car.
I havn't gotten around to play with the cargo ships themselves yet, as IR2 prolongs the steam section of the game by a very long time. I am already seing large biters spawn in, even though I halved the evolution variables in the world settings, and I am just now getting electric assemblers, and the research done for stuff like trains and tug boats. Once I get further into it, I can make a better assesment on the actual cargo ships.
In summary, what I would do, is to just test what happens if you set the Cargo Ships modifier to ~8 without Noxys Swimming, and if nothing breaks, then it is up to the player to adjust it to their liking, but keep the Cargo Ships default settings as they are (since that is your envisioned use of your mod). If we can adjust the Cargo Ships setting all the way to 8, then those using Noxys Swimming, can fiddle around with the settings to their liking, until they are happy with it. I would personally just set the movement speed modifier of both deep and shallow water to the same (e.g. 0.45) in Noxys Swimming, and then adjust the Cargo Ships setting until I am happy with the tug boat speed, since it will probably act as a good reference to the speed of all the other ships.
Is there a way I can test the speeds at their extremes by editing the code locally? I havn't looked at it yet, but could be a way to test it, in case you don't want to push the change to the live version of the mod. Let me know :)