That is a frequent misconception. If a problem has a constraint g(x) \leq 0, for an interior-point method to ensure satisfaction of the constraint throughout, it would have to penalize g(x) in the logarithmic barrier. However, that’s not what IPOPT does. Firstly, IPOPT adds slack variables s to transform the constraint to g(x) + s = 0 and s \geq 0. Secondly, the inequality on s is penalized via the log barrier, i.e., s > 0 (strictly) is maintained throughout. BUT g(x) + s = 0 is NOT maintained; that constraint is linearized at each iteration to compute a step and is penalized overall to ensure (approximate) satisfaction in the end.
I don’t know of a reliable large-scale interior-point solver that penalizes g directly (it would be doable).
KNITRO has an option such that as soon as a point satisfying g(x) < 0 has been found, then g(x) < 0 is maintained at all subsequent iterations. In particular, if you can provide a starting point that satisfies g(x) < 0, you should be all set. IPOPT has no such option.