Motor with hall effect sensor headaches...

Your
if (hallState == LOW) {
block is inside the button push block. That means that the hall effect sensor can only be read if the button is pushed.
You need to separate the motor return/hall effect check from the button checking code. Maybe only allow one or the other.

Search the forum for "state machine" and study some of the guidance and code examples. If you are going to expand your code further, then better understand such techniques first.