You need :
Two completely isolated simulations of the whole virtual world (not too hard, but requires twice as much computing power).
Exactly initial start states (not too hard either).
Synced random number generators between the two simulations (not too hard if you have a central PRNG, can be harder in you have distributed computing).
Eliminate all kind of hardware inducted difference timing : packet lost in a network, ECC error in a ramchip forcing a re-read, ... that will skew the simulation regarding to the clock, leading to different results as soon as you've parallel processing (threading or multi-process) or anything that is clock-based (that's starting to be really hard, the only way I know to reliably do it is to forget all parallel processing, run everything sequentially, and not use the clock at all).
Handle hardware fault/replacement in a way that doesn't affect the simulation at all (other reason that trigger the same issues as above).
Handle software upgrade, if any (but we know that you usually just can't run software for long without doing upgrade, to handle scaling issues, support newer hardware, fix security bugs, ...), so they are done exactly the same way and the same time on both copy (starting to be very hard).
Ensure that there is absolutely no interaction between the real world and the simulation (no admin of the simulation running admin commands that can alter data, no "cyber-attack" be it from a network or physical attack, ...)
And probably other reasons I didn't think about. Running two large-scale computer systems that work exactly the same way is an hard task. Really hard. Similar somehow to keeping quantum entanglement in a large system. The larger your system is, the more complex it is, the longer you run it - the more likely you've to get a tiny difference that can the snowball into a big one.
Again, we have the capability to do this today: we can run two fully identical copies of a simulation program on two computers half way around the world and keep the two simulations in perfect synchronization. There are a few difficulties, but they were solved in games a while ago. Starcraft solves this problem every time you play multiplayer, for example.
No not at all - just the input feed from the sensors needs to be duplicated.
Clock issues are not relevant in a proper design because clock time has nothing to do with simulation time and simulation
Suppose I have choice between the following:
A) One simulation of me is run for me 100 years, before being deleted.
B) Two identical simulations of me are run for 100 years, before being deleted.
Is the second choice preferable to the first? Should I be willing to pay more to have multiple copies of me simulated, even if those copies will have the exact same experiences?
Forgive me if this question has been answered before. I have Googled to no avail.