Cache first legal offset from first phase.

This doesn't fix the page-split bug, but it is a related buglet.