Workflow edit but not publish
The 'Publish' button isn't determined by the state of the node according to your workflow.  Actually, whether the 'Publish' button appears is determined by the permissions you have as a user.

So if you look at the content in the s1 state, you may see the 'Publish' button, because you're an admin.  An author looking at that same piece of content in the s1 state, however, shouldn't see that button based on the workflow moderation permissions you've given them.  Does that make sense?  It's not the workflow state, but the individual's permissions that determine whether that button is available.

So test it out by logging in as an author to see what they would see.  If you can still see the 'Publish' button when you're logged in as an author, that may mean that you've inadvertently given that role a permission you didn't intend, such as 'Administer content', so double-check the permissions again.  :0)

My authors definitely can't publish in some of my workflow states!