feat(future): avoid unhandled rejections
feat(future): avoid unhandled rejections

Futures are intended to wrap promises, and therefore should not leak
details about unhandled rejections.  This commit changes some logic to
align with that goal.

jiaweihli/monapt,jiaweihli/monapt