So there are 2 separate questions here, but you mixed them together. It took me a while to realize what you were asking.
Problem 1 = Understanding the difference between a sequential workflow and an iterative workflow. This is your problem regarding the workflow column always saying "complete."
Problem 2 = Understanding why your conditions aren't working.
Let's start with Problem 1
The way SPD workflows operate is they run all the way through and then finish. When this happens, the workflow is complete. It will only say In Progress if it has stopped in the middle to perform an action. You have nothing in your workflow that causes this, so the workflow goes to completion every time a record is edited. Whichever conditions are met, the associated actions execute. If you want the workflow to only run once through the whole life of the record, then you have to put pauses in the steps that wait on a field to change. Something like "Wait for a field to change in current item" and reference the Status field. When it changes to the 2nd phase, send the corresponding email and wait again. When it changes to phase 3, send that email and wait again. Continue until completion. This would make it a single sequential workflow.
Instead, you have an iterative workflow that re-runs fully each time you change the record. This type is perfectly fine and is more common with SPD, but it requires you to ignore the WF status column (remove from the view if you'd like) and focus on the status + conditional statements.
Problem 2
I can't tell from here exactly what your mistake is, but in order for your conditional statements to work, you have to use _exact_ syntax. The way the workflow is set now is that it will send that first email every time the workflow is changed unless you ONLY have it set to run on a new item. If that's the case, then it explains everything. Your workflow is running to completion when a new item is created, and the only action that executes is the one in step 1. My guess is that you thought the workflow would automatically know to stop itself before step 2 and wait for something without you specifying any logic. That's not how it works. It runs through every step unless told to do otherwise. You will need to set this workflow to run on new and on edit, then you'll need to add a condition to step 1 or separate it into two separate workflows (one for new and one for edit). Then, just make sure that the syntax of the statuses in the workflow are exactly the same as the statuses in SharePoint.