We've written a custom Gazebo (6.5.1) plugin so that we can single-step through time. That is, we start gazebo -u paused and then proceed through time step-by-step. A step is taken each time our plugin receives an external message to take a step.
Currently, we wait to receive a WorldStats publication from gazebo to consider a step completed. However, it appears these messages may be sent at regular time intervals, regardless of the step having completed.