I use the Hide action to allow someone to go from "detected" to "undetected," as it were. If a creature was never detected to begin with, it does not need to spend an action to be hidden as they are already hidden. If you walk into a dark room with an unseen cat sleeping on a table in the corner, you don't automatically detect the presence of the cat simply because it never took the hide action any more than you'd automatically detect the presence of the unseen table it is sleeping on.
For the first example... if the PCs did not detect the presence of the witches before the door before opened or otherwise know they were there (Did they hear the witches cast a spell? Did the witches reveal their presence by making noise or leaving obvious tracks?), then the witches count as automatically hidden without expending an action.
Many conditions and terrain can break line of sight with no actions required. perception, stealth, hide etc are called into question when line of sight (or other sense) is possible and simply not needed when they are not. You do not have to "not speak" to be "unheard" from someone who is deaf.
In your cat case, you might walk into a completely obscured room and still hear the cat and not the table, for instance.