I'll include the handler and the scan function below, as both are relatively short. Note that in the DoSCAN function, the scan button (called $scan) is disabled right before the system call. When I click the button, it is immediately disabled. So I know it's getting to that point. But then it doesn't do the acquire call until I do SOMETHING, ANYTHING else.
It might be worth trying the ShellExecute method rather than the perl system command. See http://perl-win32-gui.sourceforge.net/cgi-bin/docs.cgi?doc=reference-methods
This method is in Win32-GUI 1.02 and above I believe. Although it is more "fiddly" than system, it's a direct interface into the win32 API ShellExecute, and has most of the functionality. As ShellExecute is associated with your window, it might solve your issue.
Cheers, jez.