WIP - catch fatal errors during execution

This is submitted mostly as a talking point.

It 'works' but feels dirty. Is it too dirty? It's a feature I'm not sure can be done in a non-dirty way.