In your Sort Records script step, do you have the "Keep records in sorted order" option turned on? This can re-sort the records automatically if someone edits data in a field used in the sort, which would explain why you only notice this happening in the middle of the day, presumably when other users are editing data. You might try turning off the "Keep records in sorted order" option to confirm the difference in behavior, and leave it that way if it solves a problem for you.
My question is: Is this because someone has accessed one of the records the script is working on?
Possible, but unlikely. The resorting behavior will fire off if you have "Keep records in sorted order" selected when you sort. It does so "at idle". I'm not 100% sure what "at idle" consists of, but I'm reasonably certain it doesn't include while a script is running. If that theory were true, it would mean any looping script could be vulnerable to having its records resorted in the middle. It's more likely something else. What exactly is this script doing?
the option keep records in sorted order turned on by default is something that goes beyond my ability (and willingness) of understanding mankind.
Any action requiring extra work by any system we interact with, whose goal is different from saving lives if not turned on (but then it should be already integrated in the system and not be an option), should be turned off by default.