The checkpointing part is the most expensive and error-prone (what happens to all the fd's that were closed and opened again since the last checkpoint ?).
Is the "flip malloc/synchronization/scheduling knobs" part being actively used in any existing project ? It's probably the most easy part to implement from the whole paper.