Olá Stephanie.
Tudo bem?
Obrigado por compartilhar sua resolução. Gostei da forma como você utilizou o do...while para controlar as tentativas de login. A lógica de utilizar uma variável para indicar se o acesso foi permitido também demonstra um bom entendimento do fluxo do programa.
Analisando seu código, percebi apenas um detalhe relacionado à sintaxe. Na estrutura do...while, após a condição do while é necessário encerrar o comando com um ponto e vírgula. O bloco que contém a mensagem de acesso bloqueado não pode ficar logo após o while dessa forma, pois isso gerará um erro de sintaxe em JavaScript.
A lógica de limitar as tentativas com a condição t < 3 && !acessoPermitido está correta. Inclusive, o fato de a senha correta estar na quarta posição do array mostra que o sistema irá bloquear o acesso antes de chegar a essa tentativa, respeitando o limite máximo definido por você. Isso não é um erro, mas sim uma consequência da regra que você implementou.
Seu raciocínio está muito bom e demonstra que você está compreendendo bem quando utilizar um do...while, especialmente em situações como validação de login, onde a execução precisa acontecer pelo menos uma vez antes da verificação da condição.
Continue praticando dessa forma e analisando o comportamento do código em diferentes cenários. Esse hábito ajuda bastante no desenvolvimento da lógica de programação e na compreensão das estruturas de repetição.
Avise qualquer dúvida.
Caso eu tenha cometido algum erro na analise comente ai.
Bons estudos.