we aren't entering a war on smoking, it's always been like this. That's beside the point.
She think she has queen status, but she's just some woman who comes to your place. Don't get into an argument with her, don't try to "reason" with her by bringing up the sound arguments you've brought up here, someone who has the gall to complain about what someone else does in their own house is absolutely not going to consider your side. You are going to run into tons of situations in life like this where reason doesn't matter, but you have to deal with the reality of the situation (that someone is totally wrong by anyone's account, but it doesn't matter, and they'll never critically examine their side even if you bring up reasons. If they do, they will actually just resent you for it, not turn around).
So, what do you do? You basically just say "it's my place, not yours", and not more. She'll complain and whatever, but she'll see that her doing that won't change anything. You're a nice guy for going into your room just to be kind to a guest who overstays her welcome, you don't need to do that. Just hold your ground, don't talk back to her, just say it's your place, not hers.
By the way, if you smoke wherever you want (like you would if she wasn't there), and she can't stand it. Maybe she'll spend less time at your place. Win-win?