my ds is almost 3. he has that defiant thing going on sometimes. usually it happens when i'm emotionally tired or something. i think he can tell and if i can get through my stuff and he feels more connected to me it stops. however, being human and all, i can't always. so what dh and i have tried to realize is it's only a power struggle if we're both struggling. if i atleast act like i believe i'm calm and unaffected and get into that mama-goddess place, he does better. for example, the other day we were moving big sharp heavy rocks and dropping them out of the truck into this metal cage fence thing (hard to explain--gabion rock wall). they can slip and fall or break and chips fly. so i told ds about it, though it's an old story and he already had heard it other times. he absolutely refused to move from the back of the truck...so i told dh (and luckily he catches on nowadays) that i guess we need to stop working on the wall and go do something else, b/c i'm not willing to let ds risk getting hurt. i'm not comfortable with that. i'd be sad if he was hurt. as this went on, he happily (or begrudgingly?) got out of the truck on his own accord.
sometimes i feel like a broken record, but i just keep repeating my answer. if i get frustrated i tell him and why. i try to offer alternatives. like with your cookie thing, i'd hope to say, no and why and then, you can have some salad or nuts or whatever and try to take a break to be present with him. if he got to the point of getting the cookie in his mouth i'd either take it away (in my less perfect moments) or tell him again that it's not for him to eat right now. and try to ask him if he's wanting something sweet and find something (dried fruit, orange, carrot) or do the natural consequences thing. if you eat that, you won't get one after dinner. and what that means like if everyone else will be eating one and he won't. and then follow through on that. sometimes it takes time to learn what the natural consequences are, but that's ok.
with the sledding thing, we would try to act like it's fun and a separate thing from him almost getting creamed and scoop him up and giggle. he's too young to get the almost getting creamed thing at times. but then we'd tell him at the top of the hill about what will happen at the bottom, like getting out of the way for the people in line behind us and talk with them so he's familiar with them.
don't know if any of that helps. it sounds like a frustrating situation.