When I publish a page, the PublishedPage event fires when the publish completes, allowing me to perform additional tasks. For pages whose "Start publish" date is set at a point in time in the future, I need to perform those additional task when that point in time is reached. As the scheduler does not fire the PagePublished event for these pages when their status changes to published, is there any other way that I can know when this has happened (other than writing my own scheduler to walk through pages looking for whose "Start publish" date is more recent than the last time my scheduer ran)?
That is a well known problem.
One fix is as you point out to make your own sched task that fires those events after the pages are published.
Another is to replace the build in sched task and do it there instead