Adds crash deferred method in main func

- crash will delay crashing until the logging infrastructure has been
  connected, this ensures we don't lose the error messages when the
  application fails to boot