Each pageview triggers the taskrunner and also supplies the current page. The task runner will run one task for that call. The task runner tries each of the defined tasks in order until one of them says it that it actually did a thing (most times they wont).
A task may or may not be dependent on the current page ID. Eg. the first task is updating the search index for the current page. Sending mail subscriptions is another task that requires a page id. Other tasks (eg. added by plugins may be of a more general nature).
So yes, pages that are rarely visited will not send notifications in a timely manner.
Adding some kind of optional periodic task runner that can be triggered from cron would be a good idea, but not trivial to implement because it would need to call tasks for all pages. PRs welcome.