Pausar uma classe Service por um tempo X

Boa tarde, me surgiu um problema que confesso que esta me dando dor de cabeça.
Tem uma classe que é responsavel por estar disparando emails. Implementei para que ao enviar uma quantidade X de emails, o método Thread.sleep congele por um tempo de 2 horas, para assim terminar de enviar os demais emails.

public void congelamentoThread() throws InterruptedException {
try {
Uteis.logar(null, “Congelamento iniciado…”);
Thread.sleep(7000000);
} catch (InterruptedException e) {
Uteis.logar(null, “Erro thread sleed interrupting” + e.getMessage());
}
}

Porem a Thread sempre é interrompida quando executado classe service.
No log, o erro Erro thread sleed interruptingsleep interrupted|#] sempre persiste.

Resumindo, preciso que pause uma classe main por um determinado tempo.
Desde já agradeço a ajuda .

Essa outra classe, muito provavelmente, também terá que ser uma thread (eu sei, na prática ela é, mas, você precisa forçar ela a dormir e não a que dispara emails).

Não sei se entendi direito,

Você precisa que uma classe durma enquanto a outra trabalha?

Se for isso, estude a respeito do conceito de semáforos, é um pouco complexo a primeira vista, mas atende ao que eu entendi