Washed-out action in FATE Core often points to a problem with your table's agreement (or lack thereof) about what aspects mean.
Let me start by saying I share your frustration. I confess a love/hate relationship with FATE. On paper, FATE Core should be the perfect story game. Aspects and the entire Fate point economy are essentially direct choices about what should matter in any given moment in the story. It's elegant. It is also -- in my experience, at least -- prone to feeling like none of those choices matter very much. Action, in particular, tends to feel narratively washed out, lacking color, depth, and emotional stakes.
Of course, an easy fix for the problem of players feeling too powerful is to simply crank up the challenge. Make your opposition tougher.
However, the best action-oriented FATE Core game I've experienced included two measures that helped to correct for this problem -- one within the rules-as-written and the other a minor modification. I'll describe both.
Get buy-in from your table to really lean hard into Aspects as establishing narrative truth.
Remember that, per rules-as-written, aspects aren't just minor situational advantages to be tagged for mechanical benefit and then forgotten. They are literal truth within the narrative.
If a scene has the aspect Room on Fire, yes, that means someone might tag that aspect to improve a result on the dice, but it also means the room is in fact on fire and all the narrative ramifications that flow from that fact. It's hot as hell, loud, hard to see, even harder to breathe, and so on.
The trick is that those ramifications only have impact if everyone at the table buys into them, which mostly means agreeing that the sheer fact of the fire constrains the narrative somehow. It puts limits on what the characters can do in the moment, not because you as GM are compelling the aspect, but simply because the fire exists. For example, your table might decide that the fire means some actions are impossible -- not merely "difficult but achievable with a good roll," but actually impossible. Shouting a warning to your teammate while your lungs are full of smoke and an inferno rages around you both could well be impossible, even without a compel.
Likewise, other parts of the scene that might interact with the fire can and should. Gas lines explode, water pipes rupture, wooden structures collapse, everything is charred and reeks of smoke, etc. Deciding, together, to let the aspect shape the truth and create heightened stakes will likely make the scene more exciting.
Similarly, if a PC has the aspect Big Metal Arm, that's more than just a cool toy that turns Fate points into +2's. It's an arm made of metal. Your table needs to decide what that means for the truth of the story. Is the metal arm subject to magnetic forces? Will it set off metal detectors? What happens when it gets hot? How is it powered? In other words, how does the very fact of this arm constrain the story and the PCs actions in it? If you can't answer that question, it's no wonder your players are heaping every available aspect on every roll. There's nothing stopping them from doing so, no story logic to guide them into thinking, "OK, this metal arm is probably a help in these circumstances, but a hindrance in those circumstances."
This same reasoning applies to consequences, which are just aspects by another name. If a PC has the consequence Broken Leg, there should be a table consensus as to what that means for the story and the PC's actions. Can the PC run? Can the PC even walk? Again, this isn't just about compelling the aspect, although that remains a tool in your GM toolbox. It's about letting the aspect give the story shape by setting logical bounds on what can or can't happen so long as that broken leg remains a fact.
Consider requiring players to declare all aspect tags before they roll.
By rules-as-written, players are supposed to declare actions, roll the dice, and then decide whether to tag aspects. In my experience, that methodology strongly contributes to both the "pile on the aspects" style of play and the general feeling of shallow narrative. You're making a roll, and then deciding after seeing the roll what aspects actually were important to your action. It's a sort of retcon, and it robs the action of its emotional stakes. After all, what difference does it make how risky the action is when you know you can just dump Fate points on it if the dice go against you?
Instead, try having everyone declare their aspect tags before any dice are rolled. Doing so turns task resolution into a kind of betting/brinksmanship game. I declare that I'm tagging X aspect. You respond by declaring you're tagging Y. So I respond by tagging Z. And so on, until one of us decides that the stakes are getting too high. Then the dice are rolled, and we both have to live with the outcome. None of this retconned "Oh, but actually it turns out your Big Metal Arm was held in just the right position to deflect the lethal blow" nonsense. If the big metal arm is going to matter in this moment, let it matter because you exercised agency and chose to bring it bear in our exchange, not because you want to win the exchange and are willing, ex post facto, to use any and every aspect on the table to do it.
This modification tends to encourage players to play more conservatively. They'll know their Fate points are limited and shouldn't be wasted by overcommitting on a task that might see a favorable roll anyway. As a result, it also tends to speed up the pace of play a bit, because players are less likely to go through the "tag every aspect on the table" routine.
(Incidentally, every one of the numerous players I've introduced to FATE over the years has intuited that this is how aspects should work. Universally, they want to tell the story of their action by deciding what aspects they're using before they roll. I have to repeatedly stop and explain, "No, technically the rules say you should roll first and then see if you need to use aspects.")