Defer child exit error

Allows pending messages to be processed. Additionally allows client to cleanup
to perform their own error handling via the destroy method.