Fate has a much more narrative approach, less GM authority, and player-based plot control mechanisms. This can make for trouble transitioning from a more adversarial GMing environment.
Fate Core (and other recent Fate games such as Dresden) actually do a pretty good job of providing a suggested "menu" of powers and stunts for players to take; show them to your players and let those inform other stunt ideas through play, rather than trying to get the characters completely nailed down in advance the way you would have to in D&D.
To address the specific problems you mentioned:
The "blind sniper" problem is that in Fate, it's very easy for a cooperative party to stack multiple temporary aspect bonuses on a situation, then tag them all for a single super-successful roll regardless of innate skill.
Consider a sniper with a base skill of +0 - "has no idea what he's doing". First he hides on high ground (creating aspect "On a Grassy Knoll"). One of the other players - a tech - has made, and gives him some "Precision Armour Piercing Ammo", with suitable aspect. Then another player jumps into the road to stall the target into "Standing Still for a minute", so the sniper can create advantage by taking an acting to put him "Centred In My Sights".
Then the sniper free-tags all of those, for a base roll of +8 and a near-certain hit - with fate points to spare if he needs them.
Stacking enough of this sort of this can greatly reduce plausibility, but it's obvious behaviour for a group of D&D players where it's an expected part of the system to need to stack every combat advantage you can generate. I don't, however, feel it's as much of a problem as some Fate players do - this is behaves-as-designed. Fate characters are supposed to be able to beat pretty much any single obstacle if they can generate a convincing narrative. "He's not that good a shot, but it worked because an entire team was helping him take it" is a pretty good narrative to me, and gives the plot and characters room to develop further.
The "constant compels" problem arises when GM and players get caught in a Fate-point loop of constantly compelling aspects to force behaviour or non-actions from each other.
Remind your players, and remember as GM, that the point of compels is to implement narrative development. The Fate point economy will naturally limit how far players can push this, so it's not a problem unless the GM gets sucked into constantly offering Fate for compels. So don't. Compel when it's a narrative or character development to do so, not just because it's possible.
Long combats occur because groups have trouble actually taking out opponents of similar skill levels. This is particularly likely if your group is used to D&D, and trying to "wear them out" by all attacking individually. In Fate it's much more effective to set up a narrative about a couple of major attacks, taking multiple actions to support each other and make those go off well.
The best counter to most of these issues is threefold:
Let them have their moment. Players being able to tear through obstacles like this is not a problem in Fate the way it would be in D&D; it's expected behaviour of the system. Don't make it impossible, but ask what happens next and generate new obstacles. The problem can come more from a D&D-oriented GM feeling he has to make tasks "possible to fail" than from actual issues.
Your enemies are not idle. Don't GM in direct opposition to the player's actions, but instead change the game. Fate uses the same mechanics for social and combat conflicts, and it does so for good reason, expecting them to intermingle. Use it. Enemies will attack on social fronts, run away if they're in trouble, consult allies, adjust schemes, and all the other narrative options that are not often available to an orc in a dungeon.
Remember that in Fate, the player is always an informed participant, even when the character isn't. The gap between player and character knowledge is much bigger in Fate.
Situation: A hostage is tied to a chair. There is a trap which incinerates the room if anyone touches the hostage.
D&D answer: Tell the players nothing. Make hidden Perception checks. If anyone explicitly searches, make Search checks. Lie unless the players succeed at these checks.
Fate answer: Tell the players immediately that there's a trap. Let them make rolls and use aspects freely to see if the characters spot it. If one of the players has a "reckless" or "rescuer" aspect, compel it - offering a fate point if their character runs in carelessly and sets the trap off. Make the players partners in decisions that hurt their characters.
You do appear to be missing some stuff here. Here's how I'd handle your situation.
(As a foreword: bear in mind your players and the player characters being unaware of an aspect are two very different things, so you should make sure you distinguish between them.)
Entering the Scene
You said you entered a Forest with a River in it. The forest itself is pretty important, and you should probably have an aspect on the scene describing the forest you're in. If you also know for a fact there's a river, and it just wasn't mechanically important enough to be an aspect until now, you can just turn that fact into an aspect on the spot the moment anyone considers it important mechanically:
If you’re not looking for a free invocation, and you just think it’d make sense if there were a particular situation aspect in play, you don’t need to roll the dice or anything to make new aspects—just suggest them, and if the group thinks they’re interesting, write them down.
(This doesn't take an action or anything.)
You could either explicitly mention there's a Fording River, or just consider it implied by the Forest aspect.
If there isn't a river in the forest, or there might be but nobody's sure yet, you don't need to have an aspect for it. Your players or your NPCs can "discover" it later.
Creating the River
You would handle this very differently.
If there's a river aspect...
The characters might already know about it. It might even be a zone in the conflict! There's no need to "discover" it at all. People can begin using it immediately.
If the characters aren't yet aware of a River, it might not have even been significant enough to warrant creating an aspect for it. If it was that significant and they don't know about it, you're justified in asking them to try to discover it first. Normally you'd save this for bigger stuff, like the characters not yet being aware a recurring NPC is the Vampire Lord (but the players would probably know). This is just a small scene aspect.
If you didn't create a River aspect...
Your player can now Create an Advantage to "discover" the River, and create an aspect on the scene describing it. It was now retroactively there all along - but it only just became significant to the story. For the same reason, you might not worry about describing the small wildlife until someone throws nuts around and creates Squirrels, Squirrels Everywhere!! aspect.
This is your players' most powerful tool for just making things be the case in the world. Bear in mind: if they're in a desert, you'd be justified in making the discovery of a river a Fantastic (+6) challenge, or harder.
Using the River
Your Magical Tactician is at this point aware of a River, one way or another.
Nobody needs to spend any Fate Points to do stuff involving the River. The very existence of an aspect describing one means one exists, and people can interact with it. (Previous versions of Fate might have required a Fate point to use it, but not Core or Accelerated Edition.)
Your players might want to invoke the river (especially if they have free invocations on it), but this isn't required.
Now that the river exists: the Magical Tactician can go ahead and use a regular Create an Advantage action to freeze it and make things slippery. That's it! They can just do that now.
Here's a couple of things they may want to do with that Create an Advantage action:
Place a Slippery Ice aspect on the scene itself, allowing them to invoke it regularly around enemies near the river. They might have some free invocations on it to spend as a result of their Create Advantage action. However, the enemies might also invoke this one against them, too.
Place an aspect like Slipping on Ice or On Slippery Ice on a single enemy (everyone else will be unaffected). This now inherently means that enemy is busy Slipping on Ice or On Slippery Ice, and they'll have to Overcome that aspect if they want to stop slipping around. This might even mean they can't leave the river until they Overcome it - they're too busy slipping around to get away!
Your player may now invoke this aspect against that particular slipping enemy whenever they like, until it's Overcome.
Of course, the slipping enemy could also invoke it themselves: suppose that enemy rolled poorly on their defence, and their attacker is at +1 on this attack. The enemy could invoke their Slipping on Ice aspect to say they suddenly slip over, surprisingly helping them avoid the attack - they get a +2 to their defence roll, and their attacker is now at -1 and might fail their attack roll.
Best Answer
Fate says that you keep everything out in the open. Even that hidden aspect itself. Players are expected to keep their knowledge apart from their characters and play as such.
If a character takes a shot at discovering the truth, then it's a contest like "empathy vs. deceive" like you described. Per the principles of Fate, every game mechanic should be out in the open as usual, including but not limited to rolls, results, fate point expenditure, aspect and stunt invocations etc. It's the result that makes the difference.
Success means the character gets the upper hand, just like the player expected. Failure however, is the interesting part. Since in a contest, one side's failure is the other one's success, you can set the roll with opposed goals, like the PC trying to create an aspect like "I know what you did last summer", and the NPC trying to even deepen the deception by creating another aspect like "The sweet taste of false hope".
Aspects in Fate are a more versatile tool than you'd expect at first sight. Don't forget that every aspect is a piece of the truth about yur game world. Even when they don't provide game-mechanical bonuses, they still impose themselves on the story. If there is an aspect that implies that it's not public knowledge, something like "Accountant by day, axe murderer by night", it means that most people, including the PC's don't know about it unless some other aspect says otherwise.
Don't get me wrong, the players can and should know about all aspects in play. It's their character who doesn't know. If a player makes his character act as if they know, feel free to ask them how?. If they cannot find or create an aspect that justifies their knowledge, then you can safely say that they do not know it yet, so can't act on it now.
Fate is a different system than most of the classic games we have played. It offers loads of fun if you embrace the thinking behind it and play along :)