Example:
Let's say that a particular campaign has 3 flow steps:
And you would like to add a new step in between 1&2, so the new flow would be
If you add a new Flow step above a wait step, the wait step shifts down. However, currently there are leads waiting the designated 2 days (Flow step #2). (It's helpful to think about wait steps like buckets. Once a lead enters the flow step, the wait duration is calculated, and the lead waits there in that flow step bucket for that amount of time.)
If the campaign was initiated, and a lead entered Flow step #2 and began waiting 2 days, and then you add an additional step above, the Wait 2 days becomes Flow step #3. Now when the leads are done waiting 2 days in Flow Step #2 bucket, then they exit and progress to #3. Even though the actual wait step shifts from #2 to #3, the lead records are still in Step #2 bucket, and they do not shift from #2 to #3, meaning they are now waiting an additional 2 days.
Solution:
The solution here is to create a new campaign with the desired flow steps for the same membership (same Smart List), and then run a "Remove from Flow" single action by clicking the following in the old campaign (the one you wanted to edit):
After removing these members, they will not progress further into the old campaign flow, and now the new campaign is ready to be activated/initiated.