One reasonably common workload is for applications to append to a tree from multiple threads. For example the YCSB load phase does that.
What generally happens is that pages grow quickly to reach the configured memory_page_max, and then forced eviction is triggered. One thread is assigned evicting the page, and all the other threads tend to end up waiting for that page to be evicted. That behavior is exhibited when profiling shows many threads waiting in.
I'm not sure if there is anything we could do to avoid having all threads waiting for reconciliation to complete. Perhaps we could switch in a new page, if operations are appends. Then proceed to reconcile (or in-memory split) the page that is now no longer the last page in the tree.