Why not just make the nodes even from the start? Place new nodes in the largest existing gap between any pair of nodes.
There are probably other issues where simultaneously added nodes may try to insert themself into the same position in the ring, you could add some jitter in the placement to compensate for this, but then I guess you are now introducing randomness which is one step closer to just having vnodes again.