Cómo lidiar con subprocesos de Python bloqueados
Probé thread y threading.thread y ninguno de ellos tiene el problema que usted describe.
También miré el código fuente c de time.sleep (python2.6.8/Modules/timemodule.c: función floatsleep), y cada rama tiene Py_BEGIN_ALLOW_THREADS (es decir, permitir que el intérprete de Python ejecutar en otros subprocesos que se ejecutan).
En resumen, o tu código es incorrecto o no comprendes el fenómeno, simplemente piensas que no se generan nuevos hilos.