The problems of game state synchronisation; also has a nice bit about simulation vs. visualisation timescales. The unstated lesson here is that you want a more graceful way of recovering from desyncs than just completely stopping the game!

Neat trick: this uses some LLVM instrumentation to shuffle memory layout around in a program while it's running, to randomise the effects of layout on performance. As a result of the central limit theorem, this tends to normalise the distribution of timing errors too (provided your program runs long enough to have been thoroughly shuffled).