The complexity that you're describing here is that of coding the AI of your companions, not of the combat.
And honestly, I don't really get all the hate the AI gets in DA:I. I've seen it do marvelous things. Like Iron Bull using Grapling Chain on a mook and pulling it throught the Wall of Fire Dorian had just put up. Zero input on my behalf. And it's insanely good at setting off combos.
You just gotta fiddle with the targetting/following behaviour and prefered skills.
It gets flak, because it doesnt work.. If you attempt to set it up so that your party is working with each other, or off of each other, they all blob together.. Ranged, melee, light/med/heavy armor.. All stand in one single 3meter blob..
The ONLY way, to get it to "work" (and i sue the term "work" loosely) is to set them to follow themselves.. Thats not workgn as intended..
We're supposed to be able to setup techniques, and have certain members defend/buff others.. If you set Solas to defend Cassandra, for example, he stands right next to her.. But he buffs her.. If you set him to follow himself, he stays away from melee, usually, but then buffs randomly, whoever starts combat first, or whoever has the lowest HP when the CD is up! Set him to Defend himself, and he doesnt even acknowledge combat, until they are in close proximity.. Set Cassandra(or any character for that matter) to Defend herself, and she will stand back with the ranged characters, and not enter combat, until they are in proximity, or until you manually bring her into the fray!
As for preferred/on/off... Preferred doesnt mean anything except use on every single cooldown.. Ive tried combinations of things, and thats the only thing ive been able to pull out of it all.. I tried setting all combos/detonators to preferred, to try to setup more cross class combos, ad they just simply use them constantly.. Theres no "Intelligence", in the AI..Chargins Bull, constantly has warriors running far off screen, or even over ledges to there death, or one level below the combat (and in combat, AI WILL NOT climb up a ladder)...
You used Iron Bull as an example.. He has been, bar none, the worst of all my teammates, as hes constantly dying.. Ive tried auto leveling him, manually leveling, even grabbing every possibly guard ability, best armor/weapons, etc.. Hes always the 1st dead.. Blackburn did slightly better when i tried him as a 2Hander, but only just..They never once, used combat roll, or block/slash, even when set to Preferred.. I tried having my rogues/warriors abilities that were defensive in nature set to preferred, and they would not get used, AT ALL! Not parry, Block/slash, shield wall, or combat roll..
The AI is terrible, no matter how theyre setup.. Ofcourse, i never tried any difficuty below Hard, so.. On easy/normal, i could see how one could not notice how bad they are as even in Hard, the content gets steamrolled! The only way the dont constantly commit suicide, is to have each, follow themselves.. Nothing else works (on hard/nightmare difficulties