Upon further review, the significant change between original SimpleTimer and the forked CheckpointableTimer seems to be to this stop() method. I don't think there needs to be another implementation. The original "Simple" timer can just incorporate these changes, with the additional test for the checkpoint, meaning testCheckpointRestart restart in the SimpleTimerUnitTest class.

Will make a few more comments and let you know when complete.