Quello che stai cercando di fare infatti è un po' la struttura di scambio di pacchetti TCP/IP via rete solo che tu li scambi dalla seriale...
dovrai fare controlli di sovraccarico dei dati da spedire, di ricezione con ACK di risposta e altre cose....Comunque non hai una struttra complessa di PC visto che dovrebbero essere solo 2 quindi salti il processo di instradamento tipico nella rete WEB

Io ti consiglio di mettere un Timer che verrà avviato una volta spedito il pacchetto con un refresh di pochi millisecondi e quest'ultimo continuerà a verifica che non ci siano dati in arrivo sulla porta...se arrivano controlla che sia la risposta (magari metti un HEADER di testa del tipo "OK")

Di + non ti so' dire xkè io la MSCOMM non l'ho mai presa in mano ma mi sembra strano che non abbia un evento che intercetti i pacchetti!!! Il blocco totale del programma mi sembra inutile....

Basta solo una variabile di verifica nel Timer (o nell'evento del MSCOMM di dati ricevuti)... se la risposta è arrivata allora setto la variabile=True

Nel resto del programma racchiudi il codice in una if variabile=true then ...esegui codice.... end if