I would like to suggest the double-check of if the program is open before initiate the uninstall process.
This is very useful and used by other installers, for example, InstallShield.
Nowadays, what we don't have any check for this and the uninstaller tries to uninstall at all and when it tries to remove the files in use it just broken or freeze the uninstall process.
The idea is to implement a new action that perform the check of processes in use and return a boolean saying if the processes is in use or not. By this way we could perform any further action based on this answer.