Ah, I see where the confusion might be.
circleci-agent step halt
will return a green build for a single job while skipping all the remaining steps in that one specific job. The workflow will still continue to execute additional jobs. A workflow is a collection of jobs and a job is a collection of steps.
circleci-agent step halt
does not have any effect on the rest of the workflow.
If you want to prevent the remaining workflow from running, you would need to either fail the job or make use of the CircleCI API v2 and cancel the workflow.