Hi @Alister_D
Contacts are indeed unerolled from a workflow when the meet the configured goal condition.
The solution to your need is probably to create a seperate smart list that collects contacts who meet your goal while the remain in the workflow until the end.
Hope this helps.