Most generous thanks to everyone who has replied so far - I really appreciate it!
Currently I'm working on a method heavily based on liverpole's and ruoso's suggestions, and it's working beautifully. The interface is constantly responsive and everything seems to work as it should.
I think in the long term, eriam's solution is the most appropriate - POE seems like a pretty solid module that might be best suited for anything larger than the application I'm producing. I'll certainly keep POE in mind for any future GUI work that I need to do.
Outaspace: I did try something along those lines, and while it worked brilliantly on Win2K/XP, it didn't perform very well on Win98/ME; in fact if I recall correctly it didn't want to work at all. I did take a look at wxPerl some time ago and you're right, it does take a lot of effort, but it would be the better long-term solution. I definitely wouldn't do anything bigger than this with Win32::GUI.
Thanks again for everyones' responses! :)
Comment on Re: Keeping a Win32::GUI interface responsive while executing other code?