I think that the way in which the question is phrased might trap us into a false dilemma, because it assumes there are only 2 options to choose from, thus preventing us from considering other approaches.
Here is an alternative:

In this case there is no ambiguity:
- you see the current state
- the state in which the interface will end up if you press the widget
- it is clear that it is not only a "reflection of state" widget, but also an "actuator"
It is not as compact as the initial design, though it could be condensed a bit.
Another alternative would be to write show password
next to the field, and replace that with hide password
when the state is toggled. The text show/hide
is a verb, so it signalizes that it is an action that will be performed, rather than a state in which the system is or will be.