This is a follow-up to #10615: it takes the code that constructs the state at a backwards extremity, and extracts it to a separate method.