É muito mais simples do que você está fazendo. Quando você executa o comando ext-color 172 \u (como parte da configuração do PS1 ou por conta própria), o shell analisa \u , removendo o que acha que é um \ irrelevante, antes de passá-lo para ext-color as $2 . A solução é simples: coloque-o entre aspas antes de passá-lo para ext-color :
PS1="$(ext-color 172 '\u') in $(ext-color 172 '\w')"
(Observe que eu também substituí os backquotes por $( ) , usei \w em vez de $(PWD) e citei '\w' pelo mesmo motivo que '\u' .)