O shell do MongoDB avalia cursores preguiçosamente, ou seja, a série de operações encadeadas que você fez resulta em uma consulta sendo enviada ao servidor, usando o estado final com base nas operações encadeadas. Então, quando você diz "
sort({time: -1}).limit(2).sort({time: 1})
" a segunda chamada para classificar substitui a classificação definida pela primeira chamada. Para alcançar o resultado desejado, provavelmente é melhor reverter a saída do cursor no código do aplicativo, especialmente se estiver limitando a um pequeno conjunto de resultados (aqui você está usando 2). O código exato para fazer isso depende do idioma que você está usando, que você não especificou.