Nie powinno się używać System.exit() w aplikacjach androidowych. Wydaje mi się, że użyłeś tego nieładnego sposobu bo nie miałeś już wyjścia. Wszystko przez to, że obsługa wyjątków trochę kuleje, ogólnie mówiąc wydaje mi się, że za szybko łapiesz wyjątki wyrzucane w doInBackground, powinny być one obsłużone w implementacji run() wątku startującego w runInBackground(). Coś takiego:

```
try {
   doInBackground();
   ...
   startNextActivity();
   finishThisActivity();
}
catch(...) {
   showErrorDialogOnUIThread()
   // po zamknięciu dialogu wystarczy zamknąć SplashActivity
}
```