I can't diagnose what might cause the issue you are seeing. However, I can tell you some tools that might help resolve it.
In the Workflow Administration Console, open the Advanced Diagnostics and go to Persisted Instances.

From here, pick the workflow definition that the activity belongs.
You'll see a table that contains information about the instance id, and when it thinks the next timer should be triggered. Also, later versions of workflow (9.2+) have a 'Resume Instance' option here that can in some cases advance the workflow on without restarting it.

Notes on Resume Instance
Resume instance is not a panacea for resuming Workflows. It fixes specific issues that rarely occur that prevent a workflow that should run from running. It does not cause a timer to end earlier or bypass a wait condition.