We're kind of going through the same thing with Zoë. She would wait by the door and just stare out at the world, but she wouldn't budge past the door frame. Now she darts like there's no tomorrow. We had to test the real world application of "Come" in order to get her back.
Thank goodness it worked and she listened and came back to us.
That said there's a command of "wait" which means wait at a certain spot (a few feet away from the door) until you release them. It's the same as stay but specific to the door. If they were able to follow this command they would only cross the door frame when you told them to. That said we haven't worked on this command, Zoë doesn't even get what stay is let alone wait.
But that's another idea for you!