Have you checked for the last system message after the call from within Perl? That might tell if you if it's running at all and help determine the issue
in reply to Re^2: using TaskScheduler to reboot Win32 machine
in thread using TaskScheduler to reboot Win32 machine
print "SysMsg - " .
Also, anything in the event log after you attempt the run?
On the Windows side: I assume user/pass is a static account that will never change? Otherwise if you have a rotating password scheme for security in place, this will haunt you later in a bad way!