You're quite right.
I spent some time looking at the code, and I think I know what's going on now. In multiplayer games, it will dynamically adjust the delay between ticks to account for network lag. However, there seems to be a slight flaw in the calculation, so that it tends to slightly less than half of what it should be at. Of course when you set the game speed, it will reset the real delay between ticks to the desired value, and it takes a bit of time for the algorithm to slow the game down to where it thinks it can properly hide the network lag.
I think I have a quick fix that should get games running at about the speed they should be at. Just NOP out the following instruction:
That works out to file offset: 0x9B7EC
Just replace the two bytes FE C1, with the NOP bytes 90 90.
This fix should prevent your copy from artifically lowering the game speed to about a little less than half of what it should be at. I don't forsee any compatability issues if some people make this change and others don't. The game will probably just run at about the rate of the slowest person.
Btw, this has the potential to slightly increase choppyness. By slowing the game down, you don't experience network lag issues as much, so the game would run smoother. But increasing the speed, you tend to notice network delays more, so the game might become a little more jerky. If that happens, just set the game speed down yourself. Setting the speed to half of what it is with this patch should make it run at the same speed as it would have without this patch. Of course I didn't disable the speed adjusting algorithm, so it should still lower the game speed if it can't keep up, and try to smooth out the game play. It just shouldn't lower it by quite as much.