That sounds very contradictory. And your usage of Accelstepper fits better with your first statement. Don't mix run() and runSpeed() and be aware when to use setSpeed() and - even more important - when not.
runSpeed() and setSpeed() are low level functions that are also internally used by run(). So if you use these low level functions and run() at the same time, they conflict with each other.