The second record is generated before the checkpoint is finished and the checkpoint record is written. So it will be there.
(if you crash before the checkpoint is finished, the in-progress checkpoint is no good for recovery anyway, and won't be used)
Another idea would be to have separate checkpoints for each buffer partition. You would have to start recovery from the oldest checkpoint of any of the partitions.