Isso parece um pouco relacionado:
Wrapping the
tputoutput in\[ \]is recommended by the Bash man page. This helps Bash ignore non-printable characters so that it correctly calculates the size of the prompt.
Fonte .
"A tput output" no seu caso é assim: \e[1;35m ou \e[0;35m (há dois fragmentos separados para embrulhar).
Eu modifiquei seu PS1 :
export PS1='\[\e[1;35m\][\u:\w]\$\[\e[0;35m\] '
e parece funcionar para mim sem o problema.