Perf: Use `Error#stack` without throwing when available

Fixes #636.
Accompanying that change, I'd make the caught error named `thrownError` or `caughtError` instead of `err`.