Invece di usare il form come oggetto di avvio usa una sub main che avvii il form e, una volta che è chiuso, rimanga in attesa.
codice:
Public Sub Main()
    Dim mForm As New MainForm
    mForm.ShowDialog() 'mostra il form principale
    'inganna l'attesa in qualche modo
    While <variabile che diventa False quando deve smettere di attendere>
        System.Diagnostics.Thread.Sleep(100) 'attende
    End While
    'fa quello che deve fare dopo
    '...
    'esce
    Return
End Sub