Todo tee abre b.out sozinho e sobrescreve sozinho. No final você verá b.out do último tee apenas (observe que isso é independente do exec anterior, então o título original da pergunta " tee inside exec , comportamento de redirecionamento aleatório" foi bastante enganador) .
Se você examinou b.out entre tee -s, perceberá que ele contém a saída dotee anterior apenas. Você pode fazer isso digitando seus comandos um a um (sem redirecionar para a.out ) e invocando cat b.out após cada.
O redirecionamento para a.out é um pouco diferente. Quando você exec , a.out é aberto pelo shell apenas uma vez e tudo que é redirecionado para ele é anexado.
Solução: use tee -a . De man tee :
-a,--append
append to the given FILEs, do not overwrite