You are right, if the scheduled task manager says "One minute Ago" then it must be running your task. I tried the second code you posted (using vbmail) and it works for me. I had to change the last part like this:
Code:
//if ($emails)
//{
log_cron_action('', $nextitem, 1);
//}
because that script has no $emails, but when I do that I get emails and a line in the scheduled task log. I can't try the first script because I don't have the email classes.
Maybe try commenting out your "echo" lines and see if that makes any difference.