Ensure destroy callback is set to false.

This builds upon the solution outlined in the previous commit.

Prior to this commit destroy callbacks would only be run the first time
you attempted to destroy an object, which does not cater for the case
when a call to destroy fails.

This commit addresses this issue, so that destroy callbacks will be
triggered on subsequent calls to `destroy`.