I don't like the idea of making "roads" on the sea with settler boats nor the idea of using CTP-like routes. The problem with "sea roads" is that you are trying to force the road concept to sea trade, which is unnatural. It would also introduce boring micromanagement. As for the CTP-style routes, I found them a bit tedious because the system automatically regenerated them on every turn.
I think a better way would be to make warships prevent cities from working any coastal/ocean tiles. If a warship from a country you are at war with is in any tile within a coastal city's workable radius, then that city cannot work any coastal/ocean tiles. This would really force the player to get rid of the enemy ships.
As regards trade between Civs, I think a better way would be to use a probabilistic system. Let's say you have 5 coastal cities that allow you to trade with an overseas Civ. If an enemy puts a ship within the workable tiles of just one of your cities, then there would be a 1/5 chance each turn that any resources you receive will be cut off during that turn. If you receive money from the trade, you could simply lose 1/5 of the cash every turn or have 1/5 odds of getting no cash on any given turn. If the enemy has ships in 4 of the 5 coastal cities, there is an 80% chance the resource will be cutoff.
This blockade system would make it a pain to have even one city bloackaded. You could lose your oil or cash flow for 1 out of every 5 turns. To make it even more painful, and to prevent exploits, for the turn during which you lose your imported oil, the Civ you trade with could still get the resources/money you're giving them unless they have also been blockaded. So say you're England and you get oil in exchange for Coal from the Aztecs. You get oil cut off in this turn. But you still don't get an extra coal during the turn while the Aztecs still get your coal. In other words, it might be better to allow blockades only for incoming trades and not for outgoing trades.
If there are airports, they should be factored in but with perhaps 1/10th the weight of seaports to reflect the fact that only so much can be sent by air (it would defeat the whole purpose of my idea if you could escape the blockade with just 1 airport). Let's say you have 5 coastal cities and 10 cities with airports. The 10 cities with airports would count for 1/10th and would be worth 1 seaport. Thus, it would be as if you had 6 cities. So if the enemy blockades one city, there would be 1/6th odds of being cutoff. If the enemy bloackades all seaports, he would have 5/6th odds of cutting off the resource/trades.
If there is land trade the sea blockades could either have no effect or be counted by weights (as with airports). Let's say you have 5 seaports, 10 airports and 10 land connections. To reflect the fact that seatrade is often cheaper than land trade, the land connections could be given an equal weight in the calculations. So, your total connections would be 5+1+10=16. Now, if the enemy blockades all 5 ports, he would have 5/16 odds of cutting off the resource. This would make control of the sea important even if you have a land connection. However it might introduce the perverse incentive to not build any cities on the coast as to prevent any possibility of being cutoff by sea with a civ you have land trades. So it might be best not to include this but I offer it as a suggestion.
Of course, all the weights could be adjusted as determined by playtesting. I just wanted to provide the basic idea.
In addition, the calculations could be used to cut off the viable trade routes that the system automatically calculates each turn. This would also produce a cash drain by cutting off some of the best trade routes.
And by the way, the presence of a ship within an enemy coastal city's radius should produce an automatic blockade. There shouldn't be any "blockade" buttons or commands. This would make it easier on the AI. Even an AI's passing ship would blockade your city. It would also let you bombard a city or kill enemy ships while also conducting the blockade.
As you can see these changes would suddenly make control of the sea very important. If you have only 1 coastal city blockaded there would be decent odds you might lose oil for a turn or two. Likewise, the blockaded city could fall into starvation, lose productivity or drain gold. You might also lose some lucrative trade routes. Blockades would thus have the potential to bring some Civs to their knees, namely those Civs with many coastal cities and/or those dependent on overseas trade.
If you will note, with this system, submarines would become a great weapon for a civ that's a naval underdog. Because subs are invisible, the victim civ could not see them, but their mere presence in a city's coast would blockade trade and prevent the use of naval tiles.
The concept could be further elaborated by allowing blocking of inbound trade. This would require changes in the diplomatic AI though. But, it may allow the possibility of drawing in a blockaded Civ's trading partners, and similar realistic/fun effects.