We could see the slot with a different PG than we expected if the old
PG was removed and a new one was instantiated in its place. We can't
just pick up the new PG pointer, however, since it isn't locked.
Fix by retrying with the slot's new pg (possibly null!). Move this check
below the other cases so that we know we are otherwise consistent with
the slot, since the next pass around we might get pg==null and skip the
to_process.empty() and requeue_seq checks entirely.