No tengo claro haber entendido bien el problema. Creo que lo que estas diciendo es esperar a que el proceso termine lo que está haciendo antes de continuar con el flujo normal de la aplicación. Deduzco que cuando el proceso termina pone a true la variable terminado.
Si entendí bien puedes probar algo como esto:
Código Delphi
[-]
Memo1.Text := 'Iniciando Conexión';
while not terminado do
sleep(1000);
Memo1.Text := 'Finalizando conexión';
Puedes probarlo a ver si te he entendido bien, eso sí ya sabes cuidado con un bucle infinito, asegúrate bien de que sí o sí la variable terminado va a acabar siempre con un valor true.
Ya digo que eso es lo que he entendido que quieres hacer, no lo que hace el código que has puesto con el repeat. En tu código lo que se hace es volver a lanzar de nuevo el proceso que hace todo lo necesario en bucle sobre el mismo elemento de la lista hasta que termine, pero creo que eso no es lo que quieres.