Thanks for the suggestion, but I moved from running "start /min ..." in a system call to Win32::Process so I could kill the process via its process id later in the same script, and that all works fine. My current "minimize" workaround (which I don't particularly like) is to sleep x number of seconds after launching the first program via Win32::Process to give the program time to initialize and start running (takes a little while), before starting the second program. This allows the second program to be in the foreground hiding the first program, which is why I wanted to run the first program minimized. It's not a perfect solution, but it does what I need for now. I agree it's a shame Win32::Process does not accept window attributes.
"Its not how hard you work, its how much you get done."