Wrap callbacks in an eval to ensure that exceptions get propagated
to the reject handler, rather than throwing a fatal exception.