Obrigado por todas as entradas acima. Depois de tentar todas as sugestões, o script original de repente começou a funcionar novamente. Quando solicitada a senha, e a senha foi enviada pelo expect, ela não apareceu no terminal como antes e foi rejeitada, foi passada de forma invisível para o terminal e aceita, como se eu estivesse digitando eu mesmo.
Então eu executei o script algumas vezes e 1/10 vezes o mesmo problema persistiu. Existem três senhas diferentes que precisam ser enviadas, e qual delas "passa" e qual delas é "ecoada" no terminal e rejeitada parece aleatória. Não sei por que isso está acontecendo, mas suspeito que tenha pouco a ver com o Expect e o roteiro real.