If a page-out happens for a page that has been cooperatively serialized but not yet persisted, and then it is paged back in, it will read the previously persisted version rather than the dirty version. This can be avoided by properly pinning leaves in memory.
Audit and simplify the usage of Leaf's dirty_flush_epoch, page_out_on_flush, and max_unflushed_epoch fields.