Goのos/execを使ってコマンドを実行しその途中経過を表示させたいと考え http://qiita.com/hnakamur/items/9701f40c1fec83b1cd1fhttps://github.com/hnakamur/execcommandexample を参考にさせていただきました。

しかし、このプログラムで実行しているa.shは以下のようになっていまして

#!/bin/sh
echo out1
sleep 1
echo err1 1>&2
sleep 2
echo out2
echo out3
sleep 1
echo err2 1>&2
exit 1

出力の間に1秒間のスリープが入っています。スリープがあれば正しく表示されますが、これがないと非決定的な動作をします。
スリープを覗いた状態でも正しく表示させたいのですが、何か方法はありますでしょうか。以下に上記サンプルの実行結果を示します。

sleepあり

stdout:out1
stderr:err1
stdout:out2
stdout:out3
stderr:err2
stdout result:out1
out2
out3

stderr result:err1
err2

exitCode:1

sleepなし1

stdout:out1
stdout:out2
stdout:out3
stdout result:out1
out2
out3

stderr result:err1
err2

exitCode:1

sleepなし2

stderr:err1
stdout:out1
stderr:err2
stdout:out2
stdout:out3
stdout result:out1
out2
out3

stderr result:err1
err2

exitCode:1