Você parece ter alguns erros de edição na sua postagem. Existe um "&" faltando para a linha sudo, e você está usando nomes diferentes para seus canos mais tarde no script. Aqui está algo que funciona para mim:
#!/usr/bin/env bash
mkfifo pipein
mkfifo pipeout
echo '/usr/lib/openssh/sftp-server <pipein >pipeout' | sudo su anotheruser &
cat <pipeout &
cat >pipein
wait
rm -f pipein pipeout