Olá, Maria! Como vai?
Excelente postagem! O seu exemplo é o retrato perfeito de um dos erros mais clássicos e temidos por quem está começando na programação: o loop infinito (ou laço eterno).
O seu diagnóstico foi cirúrgico. No primeiro código, como a variável contador nascia valendo 0 e nenhuma linha dentro do bloco while alterava esse valor, a condição 0 < 10 permanecia eternamente verdadeira (True), fazendo o computador imprimir a mensagem sem parar até esgotar a memória ou você forçar a parada do terminal.
Para enriquecer a sua explicação e parabenizá-la pela excelente sacada, separei duas análises técnicas sobre a sua descoberta do incremento no Python:
1. A Confusão dos Operadores (++ vs. +=)
A sua confusão com C e JavaScript é completamente normal! Quase todas as linguagens derivadas da tradição do C utilizam o operador de pós-incremento contador++ como um atalho para somar 1 à variável.
O Python optou por não incluir o operador ++ por uma questão de filosofia de design da linguagem (com bônus de evitar comportamentos matemáticos confusos que acontecem em outras linguagens).
No Python, os símbolos + e - antes de uma variável são interpretados apenas como operadores unários (indicação de número positivo ou negativo). Se você tentasse digitar ++contador no Python, por exemplo, ele não daria erro, mas apenas faria uma operação matemática de +(+contador), mantendo o valor idêntico e não incrementando nada! Por isso, o uso do **operador de atribuição combinada += 1** que você descobriu é a única forma correta e recomendada.
2. O Fluxo de Controle de um Laço while
Para deixar claro como o seu cérebro resolveu o problema e ajudar os colegas que visitarem o seu tópico, veja a diferença mecânica de fluxo entre os seus dois códigos:
CÓDIGO COM BUG (Loop Infinito):
Teste: 0 < 10? Sim! -> Print -> Próxima volta -> Teste: 0 < 10? Sim! -> Print... (Infinitamente)
CÓDIGO CORRIGIDO (Loop Controlado):
Volta 1: 0 < 10? Sim! -> Print -> contador vira 1
Volta 2: 1 < 10? Sim! -> Print -> contador vira 2
...
Volta 10: 9 < 10? Sim! -> Print -> contador vira 10
Volta 11: 10 < 10? NÃO! -> Sai do loop -> "Processamento Concluído!"
A sua modificação no print utilizando a f-string (f"Processando dados...{contador + 1}/10") também ficou excelente, pois dá uma sensação de barra de progresso real para o usuário que está testando o script.
Parabéns pela persistência em investigar o bug, por identificar a diferença de sintaxe entre as linguagens e por compartilhar uma solução tão didática no fórum!
Espero que possa ter lhe ajudado e continue firme nos estudos!