Do not cache stdout or stderr when there is no callback

Sometimes we need to stream output of exec, there could be large amount of data. We use "event" instead of "callback" on this situation, but still limited by cache of stdout.