I'm designing a source measure unit which can output positive and negative voltages and currents. This is the circuit (simplified):

Here,
V1 controls the voltage or current supplied to R_Load.
VV and
VC are voltages that represent the voltage and current at R_Load, respectively, and are both measured by an ADC. If
VV is passed as feedback to U1 (via R4) the circuit operates in controlled voltage mode, if
VC is passed as feedback the circuit operates in controlled current mode. The BJT Q2 and Q1 limit the current through M1 and M2 to protect the supply. My circuit has selectable current and voltage ranges, but these are not shown.
I want to add a means to limit the current while in controlled voltage mode and the voltage while in controlled current mode. My first idea was this:

Here, positive and negative limit voltages are generated and fed into U6 (for the upper limit) and U7. If the voltage associated with the controlled variable (voltage or current) is greater than the upper limit voltage, U6 will output a positve voltage, making Q3 conduct, thereby pulling
control towards GND, lowering the output voltage. The lower limit works in a similar way, except that U7 outputs a negative voltage if the controlled variable drops below the lower limit.
Simulations show that the circuit works as expected, at least with a resistive load (I haven't simulated with a source yet).
Is there a better solution for this?