I'll try to answer your first part of a question about running programs with/without console window.
Actually perl internally parses your command to know what to run and which arguments to pass. Hence difference when you add extra quotes.
Here is a side remark - I dislike "exec" on Win32 platform very much - it seems not to do anything good in any my attempts to use it appropriately.
And, as I see, you try to start a program without console on windows, and you overcomplicated a task.
See a discussion at How to 'invoke' a PDF file on Win32 about how similar task was solved. Let me know if you need something different than I understood.
Courage, the Cowardly Dog