The steps to reproduce this are admittedly rare, but I see the value in reporting this in case if affects other versions. It's also best explained with a scenario:
- Server cron scheduled for 30 minutes past every hour
- Create a node and set "Publish on" for "4/5/2012 12:00pm"
- At 12:05pm, user notices that the node is not published. Try to edit on the node edit page (node/1234/edit) and check the "Published" box and Scheduler correctly will not let you publish because "4/5/2012 12:00pm" is now in the past
- Go to the content list (/admin/content/node/overview), check the node, and choose "Publish" from "Update options"
- Node is now published, and Scheduler still has the "Publish on" date set for "4/5/2012 12:00pm" which is now in the past
- Try and edit any part of the node at "/node/1234/edit" and Scheduler will tell you that the date/time is in the past
- Cron runs at 12:30pm, but because the article was manually published, no action is performed and "4/5/2012 12:00pm" is still the "Publish on" value
I understand how this happens, because publishing from "/admin/content/node/overview" likely just edits a simple value in the database, bypassing the error-checking that Scheduler has in the node edit page. The only workaround that I can think of (other than asking the user not to publish stories this particular way) is to add an operation to the cron hook for Scheduler to check that if a node is published and the "Publish on" date/time is in the past to clear the "Publish on" value so future node editing is not greeted by an error.