In general, it would be nice if the "split" (and also the "moveChunk") command, when issued with a "middle" or "find" parameter (so not specifying exact chunk bounds) would recover and retry instead of throwing an error if the shard version is stale at that point (b/c of an autosplit, for example).
This is generally helpful, but mostly for tests, where autosplitting can get triggered semi-randomly and makes tests using split / moveChunk much harder to design.