New split fixes

This branch is not ready for merging -- the last two commits in particular need to be cleaned up and simplified.  That said, I haven't seen any of the recent test failures after applying these changes.  I'm pushing them for wider testing and to make them easier to review (once the code changes are cleaned up).