We simply consider the semantics of [a SU b] which means that a&!b holds until finally b holds. Hence, we use the initial state to observe a&!b and if that should no longer hold, we have to make sure that b holds to finally satisfy [a SU b]. In that case, we switch to the other state so that we can express that this state must be finally reached. So, the construction of the automaton just implements the semantics of the SU operator.

You can derive this also from the recursion law of the SU operator which is [a SU b] <-> b | a & X[a SU b]. Since we want [a SU b] to hold initially, we have to demand that b | a & X[a SU b] must hold initially. This is equivalent to b | a & !b & X[a SU b]. Hence, if b holds, we are done, and otherwise, a & !b must hold, and we have to repeat that in the next step.