I am sure I'm not the first person to think of this, but why not buffer regenerative braking input into a less-than-ultra capacitor, the bleed that off into the battery at a rate it can better deal with?
Software guy here. Blame the idiot idea on that...