End-around carry would require feeding the entire result back into the input to propagate the carry. Otherwise, a sequence of low-order 1's won't be converted to a sequence of 0's.
To get two's complement, instead of adding 1 after complementing, immediately add the 1 by setting the carry bit to 1. The complementing is still in the data path preceding the adder, so effectively the complementing "happens" before adding 1.
In short, the circuit will perform two's complement subtraction, provided the carry flag is set to 1 before clocking the circuit.