If someone is hiding, do detection attempts always have disadvantage?
This is a great question. From the rules, the answer appears to be 'No', but it isn't explicitly stated. I'm inferring it from this section of the basic rules for Hiding:
Passive Perception. When you hide, there’s a chance
someone will notice you even if they aren’t searching. To
determine whether such a creature notices you, the DM
compares your Dexterity (Stealth) check with that creature’s
passive Wisdom (Perception) score, which equals 10 + the
creature’s Wisdom modifier, as well as any other bonuses
or penalties. If the creature has advantage, add 5. For
disadvantage, subtract 5.
For example, if a 1st-level character (with a proficiency
bonus of +2) has a Wisdom of 15 (a +2 modifier) and
proficiency in Perception, he or she has a passive Wisdom
(Perception) of 14.
Emphasis mine. In this case, the rules are specifically explaining how to calculate the passive perception to detect a hidden creature. Since the rules for hidden dictate that the creature must necessarily be unable to be seen clearly (implying light or heavy obscurement), we can infer that this hidden creature is in some way obscured from the searcher. However, since the passive perception total listed is 14, and does not in any way reference a -5 modifier for an obscured creature, it seems like we can be reasonably sure that detecting hidden creatures happens outside the influence of obscurement. Otherwise, the math present would necessarily have to include a -5 for detecting an obscured creature.
Can you sneak up on someone in dim light according to RAW?
This one is DM dependent according to the rules. We can piece this together from the examples that the basic rules give us:
In combat, most creatures stay alert for signs of danger
all around, so if you come out of hiding and approach
a creature, it usually sees you.
This gives rules for when a creature can detect a hidden creature approaching it. However, since it specifically calls out 'in combat', and since 'out of combat' is not addressed, we have to assume that being out of combat doesn't change the core ruling of the 'hidden' effect (otherwise it would also have a callout, because specific beats general).
The generic hiding rules that necessarily must apply out of combat are:
You can’t hide from a creature that can see you, and if you
make noise (such as shouting a warning or knocking over a
vase), you give away your position.
and the errata:
The DM decides when
circumstances are appropriate for hiding.
Also, the question isn’t whether a creature
can see you when you’re hiding. The question is whether it can see you clearly.
So in this case, the game is deferring to the DM. You are well within RAW to tell the player that they can't approach the character in dim light from the front and remain hidden. This is even more overt than a simple rule-0, because the published rules specifically call out the DM's ability to overrule it.
My reading of the published rules appear to default to allowing that, but they also give the huge caveat that the DM can overrule it. However, with what we found out above, the detecting creature would NOT receive a -5 penalty by default (unless conditions occurred to warrant disadvantage on the check(s)).
It complicates what is intentionally simple.
One of the aims of the advantage/disadvantage system is to remove the payoff for "bonus-scrounging". It isn't desirable to have your players constantly trying to find one more reason to get a little plus in their column; that has historically led to a lot of friction, book-diving, and absurd arguments to realism ("I'm standing on the table so I have a high ground bonus against him!"). By making only one advantage 'count', your players are more likely to focus their attention on finding one strong narrative (or mechanical) reason they should have advantage, and then stop looking and roll the dice already.
Your proposed rule partially brings us back to that place -- when there are X disadvantages in play, the players are suddenly strongly incentivized to try to find at least X advantages to balance it back out. Instead of looking for one decent source of advantage, they're hunting for enough to balance things out, and you're back to jumping on tables.
But you may be trying to fix the wrong problem.
From your question, I'm not sure whether you actually have a problem with the advantage system as a whole, or if you're really just seeing a problem with a very specific sort of scenario, and aiming a little too broadly with your fix.
Your example scenario with the fog cloud does highlight an issue I've noticed myself -- I personally think the "unseen attacker" rules are a little hinky. But the problem is in the "unseen attacker" rules, not in the advantage system itself.
It would be easier and less intrusive to make a houserule that modifies the "unseen attacker" rule to say something along the lines of "When you can see a creature but it can't see you, you have advantage on attack rolls against it." Then going from a disadvantageous shot to a double-blind scenario doesn't improve your odds; if you're both blinded to each other, such as by a fog cloud, you both attack at disadvantage, which makes sense both narratively and logically.
That fix would solve the issue you've identified but wouldn't require making the overall system more complicated -- if that's the only thing bothering you.
Best Answer
It is a very strong trade, combat-wise, as a free object interaction.
If you are exploring a dungeon, and have your weapons drawn, and helmet off, you minimize your risk of being surprised and use your object interaction to put the helmet on (assuming your DM lets you do so). If enemies are tricksters that rely on being hidden, you can choose not to put the helmet on, or remove it during combat.
The helmet might not be so useful on surprise combat in non-combat areas. If you don't have your weapons drawn, you need 2 turns to put the helmet on: on the first turn, draw weapon. On the 2nd, put the helmet on. 3 turns if you're a 2-weapon fighter.
That being said, armor usually takes more to be donned than 1 free object interaction. A shield takes an action, and heavy armor takes up to 10 minutes. Your DM may (like I would) classify the helmet as armor (since it gives you 1AC, and, flavor-wise, needs to be well adjusted on your head in order to be effective), and rule that a free object interaction is not enough to don it. When considering how balanced this is (or not), it has to depend on the rarity of the item that attributes it.