Quando un programma viene lanciato, il file eseguibile corrispondente viene caricato in memoria e "bloccato" da Windows, pertanto non è possibile cancellarlo.

Al massimo, puoi lanciare un file batch secondario che si occupi di ritentare con un'attesa la cancellazione del tuo file eseguibile che, nel frattempo, si appresta a terminare.

Secondo me, sono tutti espedienti molto ortodossi, decisamente inutili, facilmente aggirabili e alquanto rischiosi.

Ciao!