How does not using common-mode feedback drive my outputs to the rails?
To simplify things a bit, take a look at a common-source amplifier with a PMOS current-source load (one leg of your differential amplifier):



VG1 and VG2 are the gate bias voltages, iD is the drain current common to both transistors, and VDS1 / VSD2 are the drain-to-source voltages of the transistors. Since Q1 and Q2 are in series, VSD2 = VDD - VDS1.

Suppose there is a mismatch between the biasing or parameters of the NMOS and PMOS transistors so that the saturation drain current of the PMOS is greater than that of the NMOS: ID1(sat) &lt; ID2(sat). The plot to the left of the circuit represents this case, showing the drain currents in each transistor versus the drain-to-source voltage of the NMOS. The curve for the PMOS is reversed since VSD2 = VDD - VDS1.

The intersection of the curves defines the operating point for the circuit. In this case, VDS1 falls close to VDD, and the output voltage drives up near the VDD rail. In the case when the saturation current of the PMOS is less than that of the NMOS, the PMOS curve falls below the NMOS curve. The curves intersect at a VDS1 close to 0V, and the output voltage drives down near the GND rail.

You are right in that the output voltage falls short of the rails, but it comes close enough to prevent operation of the amplifier by limiting the output signal swing. Also, the mismatch in saturation drain currents destroys the gain of the amplifier due to the low output resistance of the PMOS in the triode region.