Uma das suas strings diz:
"[\[\e[0;36;40m\u@\H\]\[\e[0;37;40m]\]\[\e[1;34;40m${ENV}\] \[\e[1;31;40m\w\]\[\e[1;32;40m$(__git_ps1)\] \[\e[0;37;40m${NPM_PACKAGE_INFO}\]\n\[\e[0;37;40m${SYMBOL}\] "
Em que você está colocando todo texto dentro de \[\]
pares.
Se você remover a nova linha \n
e tentar essa PS1:
PS1="[\[\e[0;36;40m\u@\H\]\[\e[0;37;40m]\]\[\e[1;34;40m${ENV}\] \[\e[1;31;40m\w\]\[\e[1;32;40m$(__git_ps1)\] \[\e[0;37;40m${NPM_PACKAGE_INFO}\] n\[\e[0;37;40m${SYMBOL}\] "
Você descobrirá que a maior parte da solicitação será substituída pelos comandos de histórico se você pressionar a seta para cima.
Basta colocar o texto que deve usar o espaço de linha entre esses colchetes:
PS1="[\[\e[0;36;40m\]\u@\H \[\e[0;37;40m]\]\[\e[1;34;40m\]${ENV} \[\e[1;31;40m\]\w\[\e[1;32;40m\]$(__git_ps1) \[\e[0;37;40m\]${NPM_PACKAGE_INFO} n\[\e[0;37;40m\]${SYMBOL} "
E tente novamente.
Depois que isso funcionar corretamente, adicione a nova linha \n
de volta e tente novamente.
Se ainda estiver com problemas, atualize o bash para o 4.4.18 (presente criado) ou similar.