I messed with the idea of making my own balancer and BMS. I was also not happy with just a passive bleed off balance near top of charge. But with 14 cells, the amount of circuitry was getting messy. I had a flow chart figured out to start coding an Arduino. I was going to charge and discharge capacitors to move the charge around, but when the voltage difference is small, my tests could not move any useful power, it only really worked with more than 0.3 volt differences, and that is just too much. I did not want to get into building the switching stuff. I was then going to pair a low current BMS with an external MOS FET bank and an off the shelf active balancer, but the cheaper ones only moved energy between cells next to each other.
It certainly was a good experiment, but in the end, I decided that with the investment in batteries, having a proven BMS was a good thing. I was very close to getting a Batrium, but even that only does a passive top balance. Then I found the JK balancers. They did not have BMS functions, but the ability to move 1 or 2 amps directly from the highest to lowest cell looked great. And before I ordered one, they came out with one that is a full BMS. It ended up taking a month to get and still cost $200 from China, but so far I am very happy with it.
In a perfect world, a BMS basically just sits there doing nothing, and as it turns out, my cells are so well matched that it is not doing ANY balancing at all. The largest difference I have seen from lowest to highest cell has not gone over 0.006 volts, and I have it set to start balance if the difference exceeds 0.008 volts. My pack is still new with just 10 charge discharge cycles, and I am hoping to get over 3,000 cycles, so this is no real test yet. My inverter/charger is keeping the voltage well within the safe range, but as others have said, it has no idea if a single cell is high or low. It does not take much for one cell to get out of balance. If you have once cell that is just a little less real capacity, it will go both higher on charge, and lower on discharge than all of the other cells. As good as my JK BMS seems to be working, it is still very tempting to still use the Arduino program I started and just have it watch the cell voltages and send a shut down to the inverter/charger if something goes out of range. That way even if the BMS chokes and fails shorted, I would still have another safety in place. I hope to be running this battery for over 10 years. Anything can happen.