As you have pointed out, unless you have a silly ratio of modules to cell size, the modules cannot bleed enough power to prevent the cell from being overcharged.
Scroll up and find my posting about “better balance algorithm”. But I am repeating it here because I did not receive anything that discouraged this plan, and received no encouragement.
If you set the relays to shut off charging when an individual cell reaches the max, then your cells are being protected, but they aren’t being balanced. If you set the relays to shut of charging when the whole pack reaches that max times the number of cells, then you are abusing the top cells but you can do some balancing. If you stop charging when any one cell reaches the max, the only benefit to balancing is additional pack capacity.
The more time a cell is at max, the more abuse it is taking. I have no feel for the volts, the time, and the degradation, but the algorithm that is currently used where a cell is bypassed when it reaches max V, is going to single out a cell for abuse. That cell will lose capacity every time it hits max, and will more likely be the top cell next time. The modules have no ability to bring that top cell below the others so it will not be the next abused cell.
If you monitor the amps going in/out, you can have a state of charge measure and you can stop charging at say 90% and thus stop before any cell approaches max. The only downside to this is the accumulated error of amp counting. To solve that, have the cells run up to max every so many days or weeks or whatever. In this design, the controller will read the voltages of the modules before it shuts off charging, then instruct a module(s) to bleed power if they are out of balance. This enables the controller to bring that cell below the others so it is not the victim the next time the cells are run up to max.
I will be implementing this algorithm in the next days or weeks.