https://help.salesforce.com/HTViewHelpDoc?id=workflow_time_action_considerations.htm&language=en_US
Salesforce limits the number of time triggers an organization can execute per hour. If an organization exceeds the limits for its Edition, Salesforce defers the execution of the additional time triggers to the next hour. For example, if an Unlimited Edition organization has 1,200 time triggers scheduled to execute between 4:00 PM and 5:00 PM, Salesforce processes 1,000 time triggers between 4:00 PM and 5:00 PM and the remaining 200 time triggers between 5:00 PM and 6:00 PM.
US
The problem is with how you are trying to get the workflow rule to fire. As crop1645 commented, changing the date will not cause the workflow rule to fire. Take a look at this help doc here.
Your workflow rule is set to fire when the record is created, and any time it’s edited to subsequently meet criteria:
(Default) Evaluate the rule criteria each time a record is created or
updated.
For a new record, run the rule if the rule criteria is met.
For an updated record, run the rule only if the record is changed from
not meeting the rule criteria to meeting the rule criteria.
With this option, the rule can run multiple times per record, but it
won’t run when the record edits are unrelated to the rule criteria.
For example, suppose that for an opportunity record to meet the rule
criteria, the opportunity probability must be greater than 50%. If you
create an opportunity with a probability of 75%, the workflow rule
runs. If you edit that opportunity by changing the probability to 25%,
the edit doesn't cause the rule to run. If you then edit that
opportunity by changing the probability from 25% to 75%, the edit
causes the rule to run. With this last edit, the rule runs, because
the record is changed from not meeting the rule criteria to meeting
the rule criteria.
Since you cannot use the "created, and every time it’s edited" with time-dependant actions, you could toggle the record type of the record to not match and then match the criteria or modify your criteria even temporarily to look at another field that does not match the criteria and then make it match the criteria, like a temporary flag field.
As far as the the help docs, I don't think they are contradicting each other, just misinterpreted. The first doc you quoted had additional detail in that section that states if the date is in the past then it will set it to the next future date, whereas the second one has the same example with an additional line stating if a future date isn't available then it will be set to trigger immediately.
From the first doc:
What happens if I update the value of a date field used in a time trigger?
If you update the date field used in a time trigger, Salesforce
recalculates the time trigger as long as the time trigger has not yet
fired and the recalculation does not reschedule the time trigger to a
date in the past.
For example, if a workflow rule alerts the opportunity owner seven
days before the opportunity close date and the close date is set to
2/20/2008, Salesforce sends the alert on 2/13/2008. If you update the
close date to 2/10/2008 and the current date is 2/2/2008 or before,
Salesforce reschedules the alert for 2/3/2008. The evaluation date of
pending actions is ALWAYS reevaluated and updated if necessary
irrespective of the rule criteria. Of course, if the rule is evaluated
to false, it does not matter as the actions are removed from the
queue.
Second doc:
If you change a date field that is referenced by an unfired time
trigger in a workflow rule that has been evaluated, Salesforce
recalculates the unfired time triggers associated with the rule. For
example, if a workflow rule is scheduled to alert the opportunity
owner seven days before the opportunity close date and the close date
is set to 2/20/2011, Salesforce sends the alert on 2/13/2011. If the
close date is updated to 2/10/2011 and the time trigger hasn't fired,
Salesforce reschedules the alert for 2/3/2011. If Salesforce
recalculates the time triggers to a date in the past, Salesforce
triggers the associated actions shortly after you save the record.
Best Answer
Salesforce does not throw the triggers away if it goes over the hourly limit it just queues it up for the next hour.
So in your example of 3,000 workflow time triggers firing at once. Which seems super crazy to have that high a volume but I digress...
It would flow something like this:
Make sense?