I started sketching out how to configure mosfets to perform the capacitor switching, and I ran into a body-diode problem.
First, I simply drew ideal switches. In position 1 (top position), C1 is connected to the top battery cell and C2 the middle cell. In position 2 (bottom position), C1 is connected to the middle cell and C2 the bottom cell. In this position, the two capacitors can be used to shuttle charge around the batteries. It could be done with only one capacitor and three positions, but having three states would be harder to implement that two states. Additionally, this should balance faster. A third capacitor shuttling charge between the top and bottom cells would also be good, but I am going to stick with two for a while.
Next, I drew the circuit using p-channel mosfets. I chose p-channel because they will be easier to drive from a low-voltage logic circuit or microcontroller. Simply have a pull-up resistor from the gate to the source to deactivate the transistor and then an open-collector/drain output to pull the gate to ground and activate the transistor.
However! this configuration poses a problem. In typical discrete transistors, the substrate is connected to the source. This causes an intrinsic 'body diode' that allows current to flow if it is forward biased. I have drawn in the body diodes of the top-right mosfet and bottom-left. If the top-left mosfet (S1) is allowing current to flow, it will try to bring the top of the capacitor up to 12V. The body diode of the top-right mosfet (S2) will allow current to flow up to its source, trying to clamp the voltage to ~8.7V. This would be a dealbreaker for using mosfets.
A solution is to connect the body or substrate of each mosfet to the highest potential in the circuit. This is common practice in IC design, but not usually available with discrete components. There are plenty of discrete parts available that could do this, but there might be a better solution using bipolar transistors. That will be a schematic for another day!
I did a quick search for mosfet arrays that could be used to simplify layout/wiring on a circuit board and I found the ALD1107. It has four P-mos inside it, and it looks like all of the substrate connections are tied together and brought out to a pin. I could connect the substrate to the highest potential in my circuit and then forget about it. Sadly, this chip is not intended for power electronics of any kind. Rdson of 1800 Ohms and maximum Vgs/Vds of 12V. Does anyone know of a mosfet array chip with many pmos that could take a higher voltage? My digikey and mouser searches turned up dry.