Делали не так давно примерно то же на микроконтроллере. Применяли MSP430F2013 или ATmega48. Питание контроллера делали источником тока (на паре BC856 - Вам более высоковольтное что-нибуть понадобилось бы и в чуть большем корпусе, например, BF421) нагруженным на TLV431. Коммутировали 24 В, но не думаю, что это принципиально. Вместо сенсора тока, так как мы знали, на что будет нагружено, просто была соответствующая пауза, а заряд делали 2-я вариантами - в первом ограничивали резистором (подачей, естественно управляли), а потом его замыкали вторым MOSFET-ом, т.е. 2 ключа последовательно в конечном состоянии. Перешли на более простой и дешёвый

вариант - заряжаем биполярником с резистором и диодом, а потом параллельно этой цепи открывается MOSFET. В вашем случае, IMHO, это может быть универсальный вариант, можно только добавить сенсор тока, хотя, если использовать 2 ключа, то проще мерять напряжение на нагрузке, а по току только узнавать о наличии таковой.