New here, but just wanting to post my opinion about movement after reading many comments. You're likely pretty far in by now but my opinion is that a more free movement system would be a much better approach. I like the idea of freely exploring, like in Pokemon.
As far as the issue of being able to walk "around" important battles and avoid them, just think about how this was fixed in Pokemon.
In Pokemon, the NPC that handled the battle had a 'range'. If you walked into its line of sight, you would be stopped and the NPC would approach and battle you.
Why not simply add a range around the important battle and if the player enters the range, force them into the battle. The range can cover all possible areas (perhaps in a linear line) that the player could possibly walk through to avoid the battle.