Handler postDelayed atrasou mais tempo como configurado

Eu tento desenvolver um bip simples de timer, que espie por hora. Para o tempo que eu uso um Serviço e manipulador, aqui está o exemplo:

    void onStart(...){
        handler.postDelayed(timerRunnable, ONE_HOUR);
    }

    private Runnable timerRunnable = new Runnable() {

    @Override
        public void run() {
               ...beep
               handler.postDelayed(timerRunnable, ONE_HOUR);
        }
    };

mascorre( método @ será disparado de forma não-determinística, acho que depende do uso atual do dispositiv

Tentei o mesmo cenário com o TimerTask e com a implementação do thread 'manualmente', mas com o mesmo resultado não determinístic

questionAnswers(2)

yourAnswerToTheQuestion