This is quite east to do. I was going to open a thread for it but never had the time. Sonic has alot of advanced techs exclusive to him. For the "Spin Cancel" all you have to do is press B and imediately tap A. Another one of his advanced techs is his "Catapult." Don't know if you guys know about it, but it's a way to double Sonic's ground jumping distance while using up both of his jumps. Essentially you are simple using the momentum of his spin charge to jump. Can easily be incorperated to gameplay because of it's speed.
There are two ways to do his "Catapult."
1. Start a Side B charge. While still holding B, tap A and immediately let go of B. Your result will be Sonic launching forward in normal jump form. Without DI this travels about half of final destination. With DI you can shorten it or make it launch farther. It's great for closing the distance between you and your opponent without making yourself vulnerable to a ground attack.
2. Charge your Down B spin and as soon as you let it go, jump. You will have the same result as previously mentioned, but you will be in spin dash form while retaining your mid-air jump.
This probably is not the place to put this, but it does not deserve its own post so here goes.
catapult (spinshot) method 1:
I am not sure if it is due to the classic controller or not, but I could not pull this off consistently the way explained above with the A button. However, I was able to do this consistently by starting the side B then hitting jump at the correct time. I used his spin sound to tell me when. depending on how the timing goes you can vary the distance traveled while in the air (possible mindgame). His side b has 2 distinct sounds that are necessary. First, the "charge" sound then the "launch" sound. Hit jump timed with the "launch" sound, and that launch will be replaced by a typical jump sound and sonic will shoot off. Even though the distance can be varied, Sonic cannot use any more jumps until he lands again.
Method 2:
This is the exact same as quoted above but will also work with the A button. I can also do this consistently with either the A button or jump. Whichever is move comfortable to the user at that point. As far as I can tell there is no way to vary his distance. He always seems to go maximum range, and of course remains in spin mode for most of his travel in the air.
Edit: as mentioned earlier its pretty much just the spin dash then a jump.
To actually add tho this specific thread topic, I agree with TwinkleToes. The homing cancel is just a side B cancel. After enough practice I think the homing charge cannot be canceled by block.
The reason why you have to run to do the homing charge cancel is because you are actually doing the side B charge cancel. Otherwise the homing attack cancel should be able to be replicated from a standstill.... I would think
This of course is just one humble opinion from a person new to the boards with no video or any proof to back it up... so take it for what it is.
~Grift