I had an idea and tried the following:
When you go into a harbor city and accept a contract to protect a caravan, it is still possible to travel to another town using the docks for fast travel. When you leave the town you sailed to, you are instantly teleported back into the city where you accepted the caravan contract and start travelling with the caravan.
This is a bit strange :D maybe include a pop up that says you can’t fast travel as you have accepted to protect a caravan or say that it wil break the contract if you continue.