There are a few things that might be relevant here: Tails's AI aims a point 32 pixels to the left of Sonic's position as it was a few frames ago (16, if memory serves); Tails has the same position cap as Sonic; Loop code does not change Sonic's position array, just his current position. So maybe Tails starts to run and catches up to the position it wants to get close to Sonic. Then, a loop point comes along and Tails thinks Sonic is suddenly far to the right; Tails now aims to catch up with Sonic. He will run up to the position cap. His desired position catches up to the post-loop positions, and he realizes he is now ahead of Sonic; so he slows down. This is a theory; I'd need to look through the code to made sure all of these factors are really relevant. But maybe only the position cap would be enough, and Tails may need to be lower than Sonic's. Or maybe just change Tails' AI so that it does not aim for 32 pixels behind Sonic during the battleship scene. If Tiddles and Neo want, I can port over the prototype I made for SCH. It is compatible with insta-shield and other shield abilities, although the latter may be a bit redundant with fire shield dash.