Você pode usar o redirecionamento do descritor para um coproc
#!/bin/bash
exec 3<&1
coproc mytee { tee log.out >&3; }
exec >&${mytee[1]} 2>&1
... your script ...
STDOUT e STDERR serão mesclados na saída do script. Seria legal que alguém encontrasse uma maneira de tê-los mesclados no arquivo de log, mas separados na saída.