@geehalel, AstroEQ doesn't start movements when a :I# command is issued, it only starts when a :J# command is issued. The :I# command will update the current speed for manual slews and tracking (it doesn't affect GoTo movements). If the mount is currently moving in a slew or tracking movement, the update will happen immediately (I think that is where you are misunderstanding the code. If it is not currently moving, or it is doing a GoTo, the :I# command will do nothing until the next :J# command.
What is happening is that Indi is failing to send a :G# command, so when it receives the :J# command, it starts performing a GoTo movement as that is the mode that it was last in. This is why the axes start moving for a short period - it is doing a GoTo of the same length as whatever the last one was (which was a short correction in this case). Without the :G# command it is not being told what it should be doing.
There is very little documentation on what the Skywatcher protocol does with some of the flags. In fact it seems there is much that is not documented. The AstroEQ parser is based on what EQMOD does (not necessarily what a Skywatcher mount does) because that is the only reference I had to work on - in fact AstroEQ is designed to work with EQMOD which guarantee compatibility with anything that Skywatcher does. In this situation, EQMOD will *always* send a :G# command after a GoTo movement is complete, so there is never an issue.
In the case of checking the flags, AstroEQ uses one of the flags (I forget which one) in the :f# response to signify whether a GoTo is *in progress* not whether it is in GoTo mode.
I suppose I could change things so that the AstroEQ resets the current mode back to slew after a GoTo is complete rather than staying in that mode. But I would have to verify that it would still work correctly in all situations with EQMOD (compatibility with the official EQMOD software trumps compatibility with INDI I'm afraid).