There is another issue with using "post mode change" to build the list of fields & roles. If you edit a state from the view level, using CTRL E, then the event doesn't trigger so the lookups are useless.
I've not come up with a way around it and given your issues, maybe it should just come out.
Alternatively, fields and roles could just be stored in a Configuration document. To update them, add an agent to an entry in the outline or configuration form to "rebuild" them on demand.