Ya, FOC is easier with a permanent magnet DC motor. You command the field current to be 0 (since it's already there! Since they are magnets! haha. Or you can command negative field current, which fights against the magnets, field weakening). You need the rotor flux angle, which as e*clipse was saying, is exactly the same as the rotor angle. You have to find the angle's starting position, and save it for all eternity in the EEProm, but it's not a big deal. Computing the rotor flux angle with an ACIM is evil. But you do it, and hurray, it works. You need an index pulse with a permanent magnet motor (assuming an encoder), but don't need an index pulse with ACIM.
I should come clean. I only made a single throttle A/D input.
I think that could work with a single throttle as you described. Or maybe you could flip a switch that would regen as much as possible? Like connected to the brake? Either regen or not regen?
Maybe zero throttle could be zero regen, and the first 50% of throttle is regen, where 50% throttle is zero regen, and *almost zero* throttle is max regen, but with a built in delay, so it wouldn't start to regen unless you wanted it to. So it would have time to drop throttle to zero if you wanted to coast without losing your momentum? Man, everyone hits the brakes when they want to slow down. That could take some getting used to.