I did release the handle afterwards and remove myself from the notification center. I should have added this as well.
I have not had any problems since I modified my wrapper in this manner. Of course, this does not mean that they won't pop up in the future.
To get all of the output
change the If statement to look at the data structure instead of the program.
ie.
If( data != 0 )
[_fileHandle readInBackgroundAndNotify];
This will allow the remainder of the pipe to be read after the unix program finishes executing.