Python time.sleep () vs event.wait ()

Quiero realizar una acción a intervalos regulares en mi aplicación Python multiproceso. He visto dos formas diferentes de hacerlo

exit = False
def thread_func(): 
    while not exit:
       action()
       time.sleep(DELAY)

o

exit_flag = threading.Event()
def thread_func(): 
    while not exit_flag.wait(timeout=DELAY):
       action()

¿Hay alguna ventaja en un sentido sobre el otro? ¿Se usan menos recursos o se juegan mejor con otros hilos y el GIL? ¿Cuál hace que los hilos restantes de mi aplicación respondan mejor?

(Suponga algunos conjuntos de eventos externosexit oexit_flag, y estoy dispuesto a esperar el retraso completo mientras lo apago)

Respuestas a la pregunta(3)

Su respuesta a la pregunta