Try an in-memory split before forced eviction, also make the "promotion" code for merges apply in more cases than just a single first/last child.