Use a prop or similar structure attached to players to track 'has_dusted'. It starts as false.
When you dust yourself off and has_dusted is False and you are 'a little dusty' you get clean and has_dusted becomes true.
If you dust yourself off and has_dusted is True or you are dirtier than 'a little dusty', it does nothing and you get a message about being too dirty for that to help.
Once you get more dirty than 'a little dusty' has_dusted gets set to False again. You still can't dust yourself off as your are too dirty but once you are cleaned up again you'll get another go round of dusting.
Of course, one could also track how many times one has dusted themselves off since the last shower. The higher the number the more likely you will be told you're too dirty for that to help. Once you are told that you are flagged so the command will not work again until you've showered. Maybe the number of times you've dusted yourself off determines the difficulty and a skill/stat check is used to see if you manage.
I can see a lot of ways to implement something like this and I think it would be fine to have in the game. Very doable if there was interest in adding something like this to the game.
It's super useful for characters without an apartment, but does kind of replace cube showers so there might be some resistance to making it a built-in character verb.