Since the QuakeWorld every reasonable programmer knows that if you don't get new packet from the client - client is moving in the same direction with the same speed.
I don't know, what if it isn't and the packet has just not arrived yet?
I thought the problem was that the same variables existed many times. Everyone had positions on their computer but they were already outdated, or in the worst case just estimated by some "clever" method (i.e. a hack). Then suddenly the real value arrived from the server and it was completely different. Something was completely wrong here, maybe the updates that should have happened several times per second were just not coming and since they were only using someone else's libraries they never figured out how?
It's also possible that they were dumb enough to program their server in Unity too, because that was all they knew. The clients running in Unity was probably never an issue. But the server had to be able to support ultra high response and precision, ensuring that no matter what the important position synch was guaranteed to be happening within milliseconds, and no bullshit like garbage collectors or random Unity bloat able to interfere.