Confirmed that does exactly what I wanted: far end opens a TCP socket and, separately, a UDP socket, on the same port, Golang server Listens for TCP and UDP traffic on the same port, TCP and UDP packets come out of the correct holes and are handled correctly with response packets going down the right holes.
Very happy now :-). Thanks again for all your help!