Ya he detectado el origen del problema.
Resulta que al hacer un Terminate del Thread, realmente no lo está 'cancelando' o 'abortando' en el proceso que se encuentre en ese momento, que precisamente es el Sleep(600000) en mi caso (10 minutos).
He bajado el tiempo de Sleep a 30 segundos, y si paro el proceso y salgo de la aplicación, al cabo de máximo 30 segundos se termina correctamente la aplicación principal.
Investigaré por ese punto y ya informaré.