I have no idea how would this translate into coding but I think instead of a static grid system, a dynamic one which changes according to the situation ( stats, AP, enemy ) would be a lot better, and *might* solve problem better than both square and hex based grids.
What I mean by dynamic? First step is the initial action in combat. No matter what direction, player will have a totally straight path to the exact point he wants to go as far as (s)he can go, instead of having to pick a fixed tile to move onto. There will be grids again, but only in a sraight line, ie. player wants to proceed 48º ( just 3º past little past North-East ) ? OK, he will be traveling through a straight grid at 48º, and he will be consuming AP on that grid.
I said the first step is the initial action. Think of it like this: The first time the player decides to move in a direction, that will cost him a base of X APs, and an addition of Y APs depending on how far he wants to go. So, he will consume X+Y points the first time he will move.
Imagine, player moved 3 tiles at 48º, and he still has APs left. Now if he wants to keep moving, he has 2 options now: keep moving in the same direction ( perhaps with a tolerance of +5º -5º difference to prevent an unnecessary strictness, and to simulate maneuvering during movement) -let's say 3 tiles again,, which will cost him Y only, because he was moving already. Or he can change his direction, which will cost him another X+Y. Again, a gridh path will show up straight to the point he wants to go. No world grid.
Additionally, the +5º -5º tolerance I mentioned above could even be based on the AGI or DEX or whatever you have, so a character with higher AGI/DEX can also make better maneuver during movement.
Finally, if player still has APs left after he has moved, he can choose to "end" his movement to better focus for a possible attack against the enemy.
What do you think?