For item #1, I would agree with shmem's suggestion of leveraging the start command, which will open a new command prompt to run a command/program and return execution back immediately. For more details, open a command prompt and type start /? to get the help message for the start command.

For item #2, I would recommend looking into using either the WaitWindowLike() or the WaitWindow() function of the Win32::GuiTest module. I would try running things by hand a few times to get the timing figured out to help decide what is a reasonable time out value to use with either of those functions.

When putting a smiley right before a closing parenthesis, do you:

Use two parentheses: (Like this: :) )
Use one parenthesis: (Like this: :)
Reverse direction of the smiley: (Like this: (: )
Use angle/square brackets instead of parentheses
Use C-style commenting to set the smiley off from the closing parenthesis
Make the smiley a dunce: (:>
I disapprove of emoticons
Other