Ich möchte nochmal folgenden Satz hervorheben:
Windows leitet intern die Zugriffe auf die umbenannte Version um.
Genau das ist das Problem (aber nur, wenn die Datei zum Zeitpunkt der Umbenennung gesperrt ist). Da kommst du auch nicht drum rum. Möglicherweise
PE-Flag NET_RUN_FROM_SWAP (oder wie das heißt) ausmachen, das verhält sich aber sowieso total seltsam und ist auch keine gute Idee.
Mein Hauptprojekt hat im LAN daher für den LAN-Start einen kleinen Launcher, der die neuste Version sucht und startet. Es kann alternativ in %LOCALAPPDATA% kopiert werden und läuft dann mit einem Updater.