Stages are not executed atomically

I have setup a plan where there are build stages as Bamboo 4.3.1 build 3400.

1) Clean Environment.

2) Build

3) Test.

Since we are using GIT I have setup branch tracking so that each branch can run independentlt. Now we do not want parallel builds hence only single agent is enabled to run all builds due to conflicting environment issues.

Now my observation on multiple builds is, the agent see a change in git and fires a build in Branch A where the first stage of the branch is executed( Clean Environment). In the meantime other build for Branch B was ready to be executed and queued. As soon as this build agent is done with Clean Environment stage of Branch A it sets free and the Clean Environment Stage of Branch B executes. Hence with just one agent, the Complete build is not handled automically but the agent keeps on jumping across branched thus in a flow something like Below.

1) Branch A - Clean Environment

2) Branch B - Clean Environment.

3) Branch A - BUild

4) Branch B - Build

5) Branch A - Test

6) Branch B - Test

What we want is the Agent one starting with the Build should finish all Stages of the plan and only after that should pick up any other branch queue. Please help.