i'll break it down to the best of my knowledge
afaik, the game only distinguishes between a few "states" when you're walking, sliding, or running around. there are a few things that affect your momentum.
1. walking, sliding, wavedashing (NO DASHING INVOLVED)
the game will show you doing a walking animation. it can look like a fast walk, a small walk, or barely anything at all. the only things that matter when you're in a walk state are your traction, your initial velocity, and the momentum you're inputting by holding the stick in a certain direction.
these things don't really have to match the walking animation, which is why it doesn't make sense sometimes. if you wavedash with luigi or marth on the UFO on fourside, or any other really slippery surface, you can walk your heart out to the left and still slide really, really fast to the right. the traction is way too low, so the walk input doesn't do anything.
when you're in the slide state, you can affect your momentum by holding in any direction. lots of luigi players will wavedash away, but hold TOWARDS to slow their wavedash down faster. conversely, if you wavedash away, and hold away, luigi will seamlessly transition into a walk towards the right. this is because it's the same state.
2. initial dash
when you do an initial dash, you get a speed boost in a direction, but (for the most part) it's more powerful than sliding or walking. it comes out immediately, instead of acting as a slow force like walking does. however, you can CONTINUE holding the stick in the direction of your dash to give it more momentum, making one dash go further (or shorter, if you let go of the direction immediately).
you can actually stack initial dashes for increased momentum. this is fox-trotting: if you do an initial dash in one direction, then HOLD the same direction to "lengthen" the initial dash, then do another initial dash for another speed boost, etc.... fox can cover distances faster than doing his regular running animation.
dash dancing is a very fine art because of this. you still have control over how FAR a dash goes based on how much you hold the stick in the same direction. if you dash dance by just flicking the stick, then letting it go back to neutral, then flicking it in the other direction, you'll cover a lot shorter distance. opposite: if you do far dashes back and forth, you'll have a much longer dash dance. PC chris always used to use really short dash dances, and jman is great at fox-trotting and long dash dances.
(have you ever felt in a ditto match that the other character was catching up to you, or running faster than you somehow? i think it's because, if you dash-dance TOWARDS them, then backpedal too hastily, you'll still have some momentum going towards them when you start running the opposite direction. thus, it takes longer for your initial dash/run animation to overcome the TOWARDS momentum, and the other fox runs in and ***** you.)
3. full run and turnaround animation
after your initial dash window expires, you go into a full run. your momentum mellows out and you start going at a roughly constant speed. you can't cancel this with an input in the other way; you'll go into the lengthy turnaround animation. the game wants to make it so the faster you're going, the more time it takes to turn around. there are ways around this, though--you can wavedash down or back, since jumping cancels the run/turnaround animation.
basically, the take-home message from all of this is:
NO MATTER WHAT STATE OF RUNNING OR WALKING YOU ARE IN, YOU CAN GIVE YOUR CHARACTER EXTRA MOMENTUM IN A DIFFERENT DIRECTION BY HOLDING THE STICK.
even in a running animation, you can tilt the stick 45 degrees downwards and do a "slow run." the sideways vector of the force your stick exerts on your character is a lot smaller. try this with DK or ganon. it's ridiculous.
the way i understand moonwalking, you do a small dash in one direction (so you don't have a lot of momentum going the way you're facing), then impart as much backwards force on your character as you can without activating the initial dash animation in the opposite way. faptain calpon dashes left, but then the stick goes DOWN, just avoiding the neutral position so the initial dash RIGHT doesn't come out, then hits fully right. all your momentum is facing backwards, so you slide backwards. also, if you're walking/wavedashing to one side, then moonwalk back to that same side, the walk momentum stacks on to the moonwalk momentum. this is why fox has a good moonwalk only if you're walking one way beforehand.
a sticky-walk is just reversing the momentum from the moonwalk. you're sliding backwards, but then you hold back towards forwards. the forward-facing momentum you're imparting counteracts the backwards slide from the moonwalk, and you end up going nowhere for a split second. eventually, you transition into a full run animation and you'll start running the way you're facing again.
(you can also use the TURNAROUND animation to do a reverse-stickywalk; that is, a reversed reverse-moonwalk. silent spectre loves to play around with this. after your stickywalk, AFTER you've started the running animation to the LEFT, you can immediately start the turnaround animation to the RIGHT. if your stickywalk is very short--that is, if you have started your running animation to the LEFT but you still have a LOT of RIGHT-facing momentum--then your turnaround momentum will stack with your moonwalk momentum, and you turn around into a very fast-looking run.)
TLDR: to do a stickywalk, do a moonwalk, get a healthy amount of momentum going back, and then reverse that momentum. it takes awhile to cancel out, and you get "stuck" for awhile. so you do a half-circle back (or really, anything to get there as fast as possible to not activate the initial dash in the other direction), and then reverse that motion.
captain falcon is especially good at moonwalking, i think, because there's a long period where you can add momentum during his initial dash. if you just run in one direction, it takes him awhile to start up, but he can get going really fast. my take on this situation: during his initial dash, he's very "sensitive" to whatever momentum you put in. he's also got a long window where he's sensitive, so you can throw momentum around basically any which way.
the best way to learn all this stuff is to just play around with it. nothing like learning from experience.