Consider checking the workflow.. is it set to reevaluate, because if yes, then Time-dependent actions aren't executed for a reevaluated workflow rule in the following situations:
The reevaluated workflow rule’s immediate actions cause the record to no longer meet the workflow rule criteria.
An Apex after trigger that is executed as a result of a workflow or approvals action causes the record to no longer meet the workflow rule criteria.
To further clarify check this link.
Time Trigger Processing
Time-dependent actions aren’t executed independently. They’re grouped into a single batch that starts executing within one hour after the first action enters the batch.
Note NOTE Actual execution may be delayed based on service
availability.
Apex triggers that fire as a result of time-dependent actions may get executed in a single batch or independently.
Follow these best practices:
In case they fire independently–Ensure that your Apex logic is scoped
for a single scheduled action. For example, don't use Apex static
variables to communicate state across Apex code triggered by
different scheduled actions.
In case they fire in a single batch–Be aware of how the combination
of your time-dependent actions and Apex triggers impact your Apex
governor limits.
I hope this helps.
Cheers