Я так понимаю, что если другое приложение запустится поверх вашего, то это тоже надо учитывать?
Для этого вам нужно использовать такие банальные методы, как onStop() и onStart() у Activity.
Если у вас приложение состоит из нескольких Activity, и пока хотя бы одно из нех находится сверху, то это считать ненужно, придется где-то (например в классе приложения Application) хранить последнюю Activity, и запускать таймер, например если после onStop одной активити не вызвался onStart другой. То есть запустилась не ваша, а какая-то другая Активити.
UPD:
На счет ввода пароля: А не хотите ли начинать отсчет времени с момента последнего действия пользователя, а не засыпания устройства? Если вы хотите это все делать из соображений безопасности, то логичнее было бы начинать отсчет именно от последнего действия (например, переопределить у Activity dispatchTouchEvent, и запоминать последний "тач" по скрину вашего приложения)