Со времен Java многие разработчики привыкли к тому, что System.exit() остановит выполнение программы, но не в случае Android. Хотите завершить весь stack Activity - вызывайте Activity.finishAffinity().
Это не остановит все компоненты (Service и прочее), но поможет закрыть весь текущий back stack Activity.