fn batch_count(blocks: &[Block], budget: usize) -> usize
Blocks fitting the scratch-entry budget, or one block if it alone exceeds it.