The question is going to come down to "how much do we want to interrupt the flow of combat?"
I like Tomice's idea of toggle-able reactions. I could make my fighters automatically have attacks of opportunity while my spellcasters are free to cast reaction spells.
Perhaps some programmable AI could solve the issue of interrupting the flow of combat? "Cast Hellish Rebuke if hit for X amount of damage" / "Use Uncanny Dodge if hit for X amount of damage" and so on.
I admit, how to use counterspell eludes me. You don't want combat to pause every time an enemy casts a spell and you have spell slots to utilize Counterspell. I suppose you could have a real-time reactionary button press to make, the window of which might be narrow.