Oii Vitor, tudo bem?
Você trouxe um ponto muito interessante sobre o uso de self.ativo e a função com o decorador @property. De fato, o problema que você mencionou pode ocorrer quando o nome do atributo e o nome da função decorada com @property são iguais. Isso pode levar a uma confusão no momento de acessar ou modificar o valor do atributo, pois o Python pode não saber se está referindo-se ao método ou ao atributo em si.
No contexto do vídeo, a mudança para _ativo foi uma forma de evitar essa confusão e também de indicar que esse atributo deve ser tratado como privado (ou protegido), seguindo uma convenção comum em Python onde atributos precedidos por um sublinhado são considerados internos à classe e não devem ser acessados diretamente.
Você está correto ao dizer que se o nome da função @property fosse diferente, poderíamos manter o nome do atributo como ativo.
Um abraço e bons estudos.