Allow callback to determine if a second persist is needed

Lets try this again then ;)

Fixes #350
Please remove that comment. It's not consistent with the rest of our codebase.