A única maneira que eu acho que posso satisfazer o segundo requisito seria ordenar a lista sequencialmente, de modo que cada nó tenha uma referência à sua posição na lista e ordene / acesse a lista pela posição.
Existe algum outro método que eu possa usar para satisfazer os dois requisitos ou estou preso a construir um híbrido que empregue ambos os métodos em vários momentos, dependendo do contexto operacional e que mantenha os dois tipos de referência em sincronia?
Um híbrido na forma de matrizes vinculadas parece um compromisso entre as duas estruturas. Você ainda acessa rapidamente o índice, sobrecarga relativamente baixa com inserções aleatórias e muito baixo ao inserir em lotes.