BJT (биполярные) по MOSтут на ум приходят только гибриды IGBT.
как это сделать с помощью ЦАП, ибо выходит что на нём самый комфортный шаг с 256 ступенямиНе понял, откуда вы это вывели. ЦАПов много, есть и с бОльшим количеством ступеней, вот например КР572ПА1А, производимый с чёрт знает каких времён. У него 1024 ступени. При напряжении питания 15 вольт получаем с него шаг 15/1024=15 милливольт. Вам этого достаточно? Правда, придётся на его входы подавать не 8-битное, а 10-битное слово. Но ведь для вашего ESP32 это не проблема, верно?
Контролировать внутреннее сопротивление лучше всего популярным прибором IMAX-B6 или IMAX-B6 mini. Это достаточно точный цифровой измерительный прибор, также им можно точно измерять и ёмкость, он может служить и "умным" зарядником, и вообще умеет работать с аккумуляторами всех химических систем.