¿Cuál es la diferencia entre el reposo de la unidad de tiempo y el reposo del hilo?
No hay diferencia, lo mismo, también se implementa internamente usando Thread.sleep.
Es solo que TimeUnit puede configurar la unidad de tiempo y su usabilidad es mejor.
Si desea dormir durante 1 segundo, use TimeUnit.SECONDS.sleep(1);
Si usa TimeUnit.MILLISECONDS.sleep(), el parámetro debe escribirse como 1000