pass all keys in error objects

try #2, this just allows us to preserve any additional keys on error objects when returning them from a child in a callback.
This last line should already be handled by your `Object.keys` loop.

Also, have you considered turning that nice one-liner into a `for` loop instead? For application logic I'm fine with code like this, but `forEach` is about 1/10th the speed of a `for` loop in JS benchmarking, and it should be just as readable in this scenario.

Finally, can you write a test for this new behavior so it can't regress?