como dice j.j.aguilar, sin mas datos es dificil ayudar.
es posible que un servicio te baste. mucho depende de lo que hace tu proceso.
"sleep" puede introducir complicaciones.
android tiene sus propias maneras de llegar a la conclusion que una app merece un "ANR".
"sleep" (que no quiere decir "dormir") podria ser interpretado como una tentativa de enganar
al sistema, pues, en este caso, cuando sleep vuelve, vuelve a un mismo estado que habia dejado.
y es precisamente este estado (de no hacer nada) que hace creer que la app esta bloqueada.
ese proceso largo tiene que ser traslado a otro hilo. el sistema quiere que todo lo relacionado con
el aporte del usuario tenga precendencia. cuando no occure nada en la llamada interfaz del usuario
(botones, vistas, la pantalla), el sistema o traslada la app al fondo o muestra el ANR. para que sepas,
hay ciertos servicios que siguen funcionando aunque la app haya terminado...