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

Fixes #636
Closes #640