6 Days later...
While I was looking for alternative installer to solve my problem, I come across this guide:
https://www.advancedinstaller.com/user-guide/control-events.html#section133
The specific information that I needed:
Set reinstall mode - ReinstallMode This event allows the author to specify the validation mode or modes during a reinstall. For the Argument field it can use a combination of these values:
o - reinstall if the file is missing or is an older version
e - reinstall if the file is missing or is an equal or older version
As it turns out, my current project actually supports this.
And now that I knew what I have to do, I did additional search, and as it turns out, people are using this:
One line in the code for setting REINSTALLMODE to "emus" and everything does what I want it to do:
User edited files survive upgrade. Binaries get overridden even with same version.