It is deterministic, it is just determined elsewhere.
If thread 1 is working on a task and needs the output of thread 2, it doesn’t know what the output is. Of you move the tasks from thread 2 back into thread 1, then you have eliminated the point of multi threading.
What would be the benefit of port forwarding?
Is this something you could do on your router on your side, making it so it doesn’t matter if they dont do it?