El problema, según lo veo, no es en sí la ventana modal, sino el hecho de que la etiqueta se destruye antes de terminar el Click. Este problema he podido reproducirlo con relativamente poco código y una solución que parece buena es esta:
Cuando ocurra la sincronización de datos, en lugar de cerrar la ventana y destruir la lista, sólo cierras la ventana, y mandas un mensaje personalizado a la ventana principal:
Código Delphi
[-]
CerrarModal;
PostMessage(Handle, CM_CANCELARDIALOGO, 0, 0);
En el manejador del mensaje CM_CANCELARDIALOGO es donde destruyes la lista. Observa que tienes que mandar el mensaje con PostMessage y no con SendMessage.
// Saludos