./discourse-setup coloca nome de usuário SMTP no início da senha SMTP

Sim. Esse é o problema. Existem múltiplos níveis de escape que precisam acontecer, como quando o bash lê o valor, quando o bash entrega o valor para o sed, quando o sed o substitui e, então, talvez, quando o arquivo yml o recebe. É um problema conhecido:

Eu recategorizei isso como Support.