When I do that I just keep my General way in the back, I dont even use his unit the entire fight, unless all other units are routing, then I'll fight with him if its a Captain, but if its a heir or family member I have him just rout, so they wont be mindlessley killed for nothing.

Just do like people did in Medieval Total War, keep your General miles away from the army; when the army starts its march at the start, dont select him to move, just let him stand there, best way. Also if the battle goes ill, try to get him out of there, or fight to the death.