La tua idea non è male: è esattamente quello che avrei fatto io!

Alla fine fai esattamente quello che ti ho suggerito simulando il processo asincrono con un reload della pagina.
Quanto al mio exe in vb6: niente di speciale. Esattamente lo stesso codice che scriveresti in asp con in aggiunta giusto un controllo timer che verifichi eventuali comandi ricevuti (lettura dei falg sul db). Per l'invio di email ho usato Persits ASPEmail (free) o JMail (free anch'esso), decisamente più affidabili (imho) rispetto a cdonts e - soprattutto - in grado di utilizzare un server smtp esterno (nel mio caso era fondamentale)