Handle timers differently in simulation mode.

This commit forces the timers to operate correctly under simulation
mode and fixes SMP/SMT simulation as well as context switching under
single-core configurations.