Are you using approach_control on the signal that remains at STOP?
If so, than the sequence is correct, as approach_control will not clear a signal until it is the first signal ahead of the train.
If you want to clear that last signal using approach_control if there are still other signals ahead of the train, try using approach_control_position_forced(distance) - this disregards other signals inbetween train and the actual signal.
Are you using approach_control on the signal that remains at STOP? control_ position_ forced( distance) - this disregards other signals inbetween train and the actual signal.
If so, than the sequence is correct, as approach_control will not clear a signal until it is the first signal ahead of the train.
If you want to clear that last signal using approach_control if there are still other signals ahead of the train, try using approach_