So yes, it might happen, when the communication is terminated unexpectedly in some moments. Not sure about the mechanism of deleting temporary snapshots by Veeam, but from what I see, these snapshots are monitored by Veeam and information is stored in internal database - when job runs next time and Veeam knows (based upon its own database), that there is temporary snapshot, it is indeed deleted.Concerning snapshot not deleted by Veeam: once the communication with host is lost when Veeam tries to send a command for deleting snapshot, it would not receive any information about this snapshot on next job run, and create and delete new temporary snapshot.
Normally, snapshot indeed should be deleted with the next job run, but in some cases it does not happens due to different limitations or issues.
Unfortunately, the only way for dealing such snapshots is to delete them manually.
But there is no "search for snapshot with the 'Veeam Temporary snapshot' name on the machine that is going to be backed up and if there is one, delete this snapshot and then proceed normally" - which is the mechanism, that is used by the "script approach" to manually delete temporary snapshots.
In general, this can be monitored, but since we backup a lot of Windows machines that runs a lot of processes, then even with VSS enables, sometimes the Application aware processing is not possible, so the backup job fails in the first run quite often, but succeed in second. I have mail notifications, when job fails after third attempt, so now I think it will be necessary to get a note after every failure and check the temporary snapshots.