Suponho que o problema não seja tee que pareço lembrar de não armazenar em buffer ou na maioria dos buffers por linhas.
Portanto, se o problema for você app , você pode modificar seu comportamento usando o utilitário stdbuf (a menos que app faça suas próprias modificações no buffer de stdout). Você pode usá-lo desta maneira:
stdbuf -o 0 app args | tee -a log
A opção -o 0 configura a stdout de app como sem buffer.