It has the explanation on Page 14 of the Europe 1940 2nd Edition rulebook and page 13 of the Pacific 1940 2nd Edition rulebook under the title “Sea Units Starting in Hostile Sea Zones”:
If you are sharing a sea zone with surface warships (not submarines and/or transports) belonging to a power with which you are at war, this situation requires you to do one of the following:
1 > Remain in the sea zone and conduct combat.
2 > Leave the sea zone, load units if desired, and conduct combat elsewhere.
3 > Leave the sea zone, load units, and return to the same sea zone to conduct combat (you can’t load units while in a hostile sea zone), or
4 > Leave the sea zone and conduct no combat.
I believe #2 has the answer you are looking for. This is how it is written in the rulebook. Obviously all the talk about “load units” is referring to transports, but the rest of it applies to submarines or any other ship you may have in that sea zone.
The “destroyer stopping submarine movement” occurs when a submarine is moving from another sea zone into a sea zone with an enemy destroyer in it. That is when the sub must stop. While it doesn’t specifically say, when a sub starts it’s move in a sea zone with an enemy destroyer, it can use it’s combat move to escape. That is the only instance where the destroyer will NOT prevent sub movement.
In your example, the German subs could move to get away from the UK destroyer and attack the US fleet. OR, they could even move past the US fleet to another sea zone unless that US fleet has a destroyer, in which case they would have to stop and conduct combat.