Lo dijiste tú mismo, sucede porque el programa que se compila todavía se está ejecutando.
En Windows, no puede hacer cambios en el archivo EXE de un programa cuando se está ejecutando.
Es fantásticamente molesto, y una de esas cosas que (para mí) hace que las ventanas sean un poco menos cómodas que, por ejemplo, Linux para el desarrollo.