Creating a TimerNodeInstance coupled with JPA persistence that expires while the JVM is down creates a scenario where the timer has expired, and is not fired upon startup.
For instance: Create a 1 minute timer. Shut down the JVM, wait 2 minutes. Start the JVM back up, re-load the StatefulKnowledgeSession, and the TimerNodeInstance waits in the same state as previous to the deadline, and will not fire.
Krisv has suggested creating an additional timer unit test to duplicate this scenario.