Oi, Marina, como vai?
Sua explicação está correta e mostra que você compreendeu bem o conceito de loop infinito. O problema acontece porque o valor da variável contador nunca era alterado dentro do while, então a condição contador < 10 continuava verdadeira indefinidamente. A solução com contador += 1 ficou adequada, porque agora o valor do contador é atualizado a cada repetição até que a condição deixe de ser verdadeira.
Esse tipo de situação é bastante comum quando começamos a trabalhar com estruturas de repetição. Em muitos casos, o loop infinito acontece justamente por esquecer a atualização da variável de controle.
Parabéns pela análise do problema e pela correção aplicada no código. Você está desenvolvendo uma boa percepção sobre o funcionamento dos laços de repetição. O fórum está à disposição para acompanhar sua evolução.
Para saber mais:
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!