OK. FINALMENTE entendi. Minha senha super estúpida estava mexendo com o mysqldump porque tinha um "&" nele. Não precisou alterar a senha. Acabei de colocar a senha entre parênteses:
--password="'.$db_pass.'"
Agora funciona como esperado. Tantas horas desperdiçadas... @MarcB, muito obrigado por sua ajuda. Não sabia como retornar os erros e esse foi definitivamente o maior obstáculo.