Tkinter: ProgressBar con duración indeterminada

Me gustaría implementar una barra de progreso en Tkinter que cumpla los siguientes requisitos:

La barra de progreso es el único elemento dentro de la ventana principal.Se puede iniciar con un comando de inicio sin necesidad de presionar ningún botónPuede esperar hasta que finalice una tarea con duración desconocidaEl indicador de la barra de progreso continúa moviéndose mientras la tarea no haya finalizado.Se puede cerrar con un comando de detención sin necesidad de presionar ninguna barra de detención

Hasta ahora, tengo el siguiente código:

import Tkinter
import ttk
import time

def task(root):
    root.mainloop()

root = Tkinter.Tk()
ft = ttk.Frame()
ft.pack(expand=True, fill=Tkinter.BOTH, side=Tkinter.TOP)
pb_hD = ttk.Progressbar(ft, orient='horizontal', mode='indeterminate')
pb_hD.pack(expand=True, fill=Tkinter.BOTH, side=Tkinter.TOP)
pb_hD.start(50)
root.after(0,task(root))
time.sleep(5) # to be replaced by process of unknown duration
root.destroy()

Aquí, el problema es que la barra de progreso no se detiene después de que terminan los 5s.

¿Alguien podría ayudarme a encontrar el error?

Respuestas a la pregunta(1)

Su respuesta a la pregunta