- remove code that attempts to propogate _main's exit status through returns. we can't rely on that, the status must be signaled through an event to support both sync / async applications.
 - consolidate exit functionality
 - moved exitRuntime to callMain