Eu encontrei a solução aqui . No final, não foi solução TMUX (inicialmente eu tought tmux teria algum mecanismo para sincronizar os processos em execução em seus painéis)
A resposta está usando pipes nomeados. Como program1
envia a saída quando está pronta, tudo o que preciso é algo assim:
mkfifo /tmp/pipe
tmux split-window -d "program1 > /tmp/pipe 2>&1"
signal='cat /tmp/pipe'
program2 # This will only run after program1 has output something