The integrity checker loads all the issues into memory. So if while running the Workflow Current Step Check another user executes a transition on an issue, an inconsistency is caught by Jira between the current step table and the issues in memory. It then tries to correct the percieved error which means the issue now has the wrong step for the status.
This is best fixed by implementing Joins so all required date is retrieved at the same time.
The chance of this happening is very small.