Basicamente isso.
O .sorted(Comparator.comparing(DadosEpisodio::avaliacao))
está considerando algum episódio com nota 10 como se fosse nota 1, pois o campo está como string.
Não seria melhor usar realizar um parse antes de realizar a comparação?
ps: Em outro pontto, aproveitando o post... Seria possível dar uma explicação um do que está acontecendo nesse comparing?
Comparator.comparing(DadosEpisodio::avaliacao)
Para mim está parecendo que está usando atributo avaliação da classe DadosEpisódio como base para a comparação, puxando diretamente da classe ao invés do Objeto do tipo DadosEpisódio que está sendo passado da List.
É isso mesmo?