added checkpointing

I limit the number of jobs so they should finish within an hour, well
short of the 2 hour limit.  However, there are some cases I need to
allow for, such as when a machine is slow due to load, memory pressure,
and a job gets evicted.