Ah ... ecco ...

No, in VB6 gira tutto su un thread. I timer sono gestiti tramite il messaggio WM_TIMER comunque nell'unico thread della GUI.

Una Sleep, ovunque posta, blocca tutto.

Non ho comunque capito tutto il meccanismo che hai messo in piedi ...