Hey so fresh out training mode, and i've been work shopping spin shot. (sorry if this is long, i did a lot of testing)
So the first (and most obvious) thing you have to know about spin shot is that you need to save your double jump when using it. A lot of people (including me) will instinctively use up their jump when they're sent flying, and when they try and spin shot to recover, they just end up killing themselves.
Also, i said this in a previous comment, but you have to use spin dash in ultimate, spin charge will not result in a spin shot anymore, as a matter of fact, aerial spin charge is kind of trash in this game.
Another thing, I have tested it, you can perform the jump out of spin dash (the "shot" part of spinshot) by pressing: A, X, Y, or flicking the c-stick in any direction (yeah any direction, i tested them all). The C-stick doesn't have to be a tilt stick, I was able to perform spinshot with a smash stick and a tilt stick. And every button should send you relatively equal distances. I typically just use A, or flick the c-stick to the side, as these are the fastest inputs i can do.
Final note before explanation:
You can't do a spinshot with a fully charged spin dash, it doesn't actually matter how long you charge your spin dash for, but you can't jump cancel out of a fully charged spin dash right away, so jump before the animation turns yellow.
*I tested it quite a bit, and I couldn't find a difference in height or distance based off of how long I held B down (before fully charged), or based off of which input I used to jump; please let me know if you can prove any of this wrong
The timing for spin shot is a little tricky, but extremely doable. Once you figure out how to do it, it will be pretty easy to get is consistently. So to understand the timing, let me break down spin dash a little.
Too Fast:
If you just tap the direction you wanna go, tap B, and then immediately A, you'll probably do a vertical spin dash jump, which is just going straight up in your spinning form. Also, I've tried just sliding my finger from B to A, and i found that was just barely too fast.
Too slow:
If you perform the jump after or towards the end of the hop animation: if you're in the air you'll just jump cancel out of your spin dash, and if you're on the ground, you'll do a spin dash jump. Sometimes the jump cancel looks similar to a spin shot, and you might get the same horizontal distance from it. However, you get zero vertical recovery from, where spinshot usually shoots you into the air and into a rainbow like arch, a jump cancel will send you straight forward and diagonally down. So if you're too slow with your spinshot timing offstage, you may end up underneath the stage.
Just right:
After you release the B button, it's almost immediately afterwards when you jump. The way I time it, is that your window is between when you let go of B and when sonic is in the peak of his hop animation. (But honestly, I don't think of it that way, I kinda just let B go and tap A before Sonic starts moving forward.)
I hope this helped!