I created a quick example project.
Hitting start will stop the timeline and start it again.
Resume will resume the timeline from the midway point.
The top is a counter showing each time the ->On Started event is triggered. It is triggered when the timeline is first started and when it's resumed after being paused
dropbox.com/scl/fi/fuio7qpn91s5azb3bqu47/timeline.c3p
I'm thinking it's working as intended, but just not totally sure :)
Thanks.
It's difficult to tell without looking at the project, it might be a subtle bug though.
Looking at the code, a timeline that resumes playback from the exact same position as a keyframe, doesn't trigger the keyframe reached condition.
I am thinking that if playback is stopped when the condition is triggered, maybe the play head does not end exactly in the position of the keyframe but just before it. If that happens then when playback is resumed, it wouldn't technically be in the same position as a keyframe so the condition might be triggered the following tick.
That's a wild guess, I would need to look at it more closely to be sure.