I'm not even certain that ないでいます is used, but if it is, what is it's difference from ていません? They are both negation, but one is saying they are negating, and the other one is saying they aren't doing. Any help?
Suppose that "I have been not eating" were correct English. Then it would suggest that I were in the prolonged state of "not eating", e.g. trying not to eat.
"I haven't been eating" suggests that I happened not to be in the state of "eating" for some period of time. This may be coincidental.
Although it takes some work to see the difference in English, the above example translates readily into Japanese as
Coming to think of it, I think that the difference in English can be related to the "no split infinitives" rule (which, if I remember correctly, was introduced in the 19th century as an act of arbitrariness to define "proper speech" through grammars, which would distinguish the well-read upper class from simple folk).
The "no split infinitives" rule corrects the above to
Another rule says that negation should be done on the auxiliary verb (any inflection, in fact). So "to be not eating" negates "eating" directly, but that should be done on the auxiliary verb "to be", whence "to not be eating". But then, the "no split infinitives" pulls the negation out to the front: "not to be eating".
Out of the following, I think only the first is formally correct
Japanese has no analogous rules; you can negate either part of the ～ている construction.
The nuances that can be conveyed with this construction are described in Kohsuke Kawaguchi's answer.
ないでいます conveys that not only one is not doing something, but also one has been in that state for a while (as in, one hasn't been doing it.) In comparison, ていません just says one is not doing something right now.
Therefore ないでいます carries a bit of feeling that one is procrastinating, as in 近いうちに田舎に帰ろうと決めたのですが、できないでいます。(I decided to visit my home town but I haven't managed.)