Inzwischen habe ich eine brauchbare Lösung und sehr einfache Lösung. Da es vielleicht auch andere interessiert, poste ich sie hier mal.
Man muss den untergeordneten Socket beenden:
IdSmtp.Socket.Close
Dadurch wird das Send von IdSmtp sauber durch eine
Exception (closed gracefully) beendet und man muss nur noch die
Exception abfangen, damit sie nicht angezeigt wird.