Thanks for your thought-provoking replies. I have a few follow-ons, and to avoid this reply becoming mostly quotes, I will just repeat the quotes you used as tags to indicate which section I am replying to. Also, I have changed my views somewhat, in response to Nition's reply.

>> The author is being slightly inconsistent...

I think we have to take it that the computer is part of the top-level, 'real' world, and therefore that the physical location, of the information making up each of the simulations, is in the real world. Each level gets a different view of that information (somewhat like a recursive function's view of the stack), though these views are all the same insofar as they all see an infinite stack of simulated worlds.

They are not all identical, however. For example, when the narrator's world is fast-forwarding its simulation to catch up with their own time, their simulated world is not the same as their own, and they can see that this is so. The level above the narrator's might be in a similar situation with regard to both the narrators world and the narrators simulation.

The author is only assuming that the inhabitants of each simulation perceive their situation as being the same, and only when one compares them at the same local time in each. So far, I don't see any paradox between that and the fact that the simulations are not identical (a fact that can be verified by anyone further up the stack, who has a broader view of what's going on.)

>> when the simulations reach the time of the original reversal?

I think we are in agreement here, but up until now, I had been thinking that there is no way that a simulation could detect that it has been through a time loop. The top-level operators, however, could make their clock visible in the first simulation, which would pass it on to the second one and so on, and, just as the narrator deduces that the black ball materializing on the ceiling is a viewport, each simulation will deduce that the clock is showing real time.

Would this permit a simulation to count the number of times they have gone through a time loop, and therefore be able to deduce something about their position in the stack? I don't think so, as going backwards in simulated time erases, from the simulated world, all memories and any other physical record from its future: the world's inhabitants will just see the real-world clock suddenly jump forward, at the point where the loop starts going forwards again. This will be a different jump at each level, as they have each gone around the loop a different number of times, and therefore fallen behind real time by different amounts. As they have forgotten the duration of a loop, however (erased by time-reversal), they cannot deduce how many loops the clock-jump represents.[1]

On the other hand, going forwards, each simulation has a different memory of how much the real-time clock jumped, and they will not agree on that even at corresponding local times... I have not figured out whether that is a problem for the story's premises.

[1] Alternatively... maybe each level can deduce the duration of a loop, as they will perceive the simulation they are running go around it once? I'm not sure this is consistent...