En realidad PHP gestiona su buffer de salida de la forma que necesitas (por defecto) .. es decir, hasta que no completa la ejecución de la misma .. no entrega lo que tenga en su buffer de salida a la salida propiamente tal.
Eso sí .. otra cosa sería controlar los mensajes de error .. si los hay que haga otra cosa tu código (como redireccionar .. o controlar el error mejor en definitiva). Para eso tienes funciones para "re-escribir" el "handler" de gestión de errores de PHP y así tener mejor control sobre lo que hacer si hay un error crítico de tu aplicación (fuera de los de "lógica" que ya controlaras actualmente).
Revisa estos temas en los capítulos del manual oficial de PHP:
http://www.php.net/manual/en/ref.errorfunc.php http://www.php.net/manual/en/ref.outcontrol.php
Un saludo,