but to do any of this would require so much rewriting that is all too likely beyond anyone's access at this time.
Most of this should be relatively easy, actually. Don't forget that we're working with (basically) fully labelled and re-assemblable ASM, not a hex editor, so shifting things around a bit is generally not a problem.
Making shields (and/or weapons) provide a static evasion % boost is trivial (delete the level multiplier code, optionally edit the item data to change the boost amount), as is changing the number of hits enemies deal or their accuracy (edit the enemy data, subject to the enemy data only supporting a maximum of 16 different values, unless you want to expand the enemy data). Ditto for making evasion % be based on e.g. agility / 2 (rearrange the adding code a tiny bit and then add a single LSR).
If it was possible to apply agility stat to enemy statistics and have that solely be factor for action speed for player and enemy both, it would be a huge difference.
Both characters and monsters have some unused battle stats which could be used for new data (e.g. characters don't have a Fear level or a Family, monsters don't have secondary hand weapons, etc.), and once Agility was available as a battle stat, switching the turn order sorting to use agility instead of evasion % would only take a few lines of ASM. The hardest part would be freeing up enough space to hold the new monster stats, but this game's code is pretty inefficient in terms of space, so rewriting it to free up more space isn't hard - this is how I've been making room for all of the bugfixes and new features.
Also would be nice if every 2 levels of shield skill added one level of evading, while evade lvl itself was the limiting factor to how many hits can be dodged while shield equipped, to prevent dodge rate from becoming perfect too easily.
I'm not sure I understand this part - would characters without a shield equipped have 0 evasion? What would happen if a character had 2 shields equipped? Or does this mean that you'd get a guaranteed evade for every 2 levels of shield skill?
This might be a bit too deep into rebalancing for the project
Yup, changes like this definitely go beyond the (current) scope of this project, but they're still fun to play around with
Ultimately the only real answer would be to cap evade% or evade level at values lower than they currently are, and I don't think a hard cap is the answer.
Lowering the cap was my first thought as well - even 8-99 evasion is overkill based on the current enemy physical offensive capabilities, let alone 16-99.
There's also Blink to deal with - currently one good cast can max your entire party's evade level!