Descobri que criar explicitamente outro canal primeiro faz o que eu queria fazer:
$ pipe3="$$.pipe3"
$ mkfifo $pipe3
...
$ head file_1 | tee >(sort >$pipe3) | (sleep 1; paste <(cat <$pipe3) - )
...
$ tail file_2 | tee >(sort -r >$pipe3) | (sleep 1; paste <(cat <$pipe3) - )
...
$ rm $pipe3
A necessidade de "dormir", e usar "$ pipe3" em vez de "& 3", torna isso um pouco menos elegante.