Подозреваю, что дело тут во флаге FLAG_ACTIVITY_NEW_TASK. У вас создается не просто новая активити, а новый процесс, а старый остается висеть в фоне. В документации, кстати, говорят, что "singleTask and singleInstance — are not appropriate for most applications" - как раз потому, что при неосторожном использовании они могут приводить к странным результатам.
У меня в похожей ситуации прекрасно работает флаг FLAG_ACTIVITY_CLEAR_TOP. У вызываемой активити в манифесте стоит singleTop. Правда, я вызываю ее не из сервиса, а из другой активити, но не думаю, что это принципиально. Нужно иметь в виду еще одну вещь: если ваша PasswordActivity уже существует, то вместо onCreate() может быть вызван onNewIntent(). Его тоже нужно переопределить, чтобы правильно обработать данные от сервиса. Возможно, именно поэтому у вас не получилось, когда вы пробовали "поиграть с флагами".