centralize plugin exception catching & dumping in core.plugin/run-plugin