One thing that our blog-post didn't mention too well was the need to be able to access arbitrary slices of data within the sorted set, as well as being able to know the index at which an item was inserted as well as removed. This is necessary for our usage of sorted sets, as clients can subscribe to a given window of the sorted-set (e.g. the top of a member-list), and in order to compute the delta operations to keep the client-side list in sync with the one on the server, we need this information.
I think you can augment simple trees to support those operations.
This reads as an almost textbook description of Cartesian tree.
Cartesian trees do not provide the ability to get items at arbitrary indices within the data structure in an efficient member from my understanding. In order to get the Nth item in the tree, a linear traversal is required. Furthermore, to get the index at which an item is inserted or removed requires the same traversal to accumulate the index.
The common solution is to hold size of subtree in the nodes in addition to the value a.k.a treap with implicit keys.
I propose a challenge: Provide the interface for the datastructure and the test tool.
But at this point you're adding even more bookkeeping and implementation complexity just to use a data structure that's not ideal in the first place (for performance, sequential memory layout is better than chasing pointers).
Memory fragmentation.
They can also be implemented fairly efficiently in functional languages.