La verdad que es bastante codigo, pero para que se ejecute inmediatamente proba con DoEvents después de SendData (inmediatamente después):
WS.SendData dato
DoEvents
'Lo que siga
Igual, antes de cargar el archivo debes verificar si ya se recibió, puede que el servidor esté ocupado y no responda inmediatamente... se me ocurre
Espero que te sea de ayuda, cualquier cosa preguntá. Un saludo.