I don’t think you’re missing anything.
Approval tasks just supply those three choices, but all three are considered “completing” the task because the approval task is just about the approval, not the underlying work being approved. For better or worse.
For automation, this doesn’t work well; better to use your own single-select custom field treating the approvals as steps or phases each as an option value.
For more manual approaches, I like to use approvals as subtasks because it allows multiple approval levels for a piece of work, they’re preserved with the parent task, and the completion behavior is less problematic.
Thanks,
Larry