Are there any sources (if any) for there being limitations to being dan lkaf zechut? When is one required to do so, and when is one exempt?
See Sefer Chofetz Chaim Hilchos Lashon Hara 3:7-8
And know further a great principle and foundation in these things: If he sees a man who did something or said something — both in the area of what is between man and his Maker or in the area of what is between man and his neighbor — and his words or his deeds can be judged in the scales of good and merit — if that man [the sayer or doer] is G–d-fearing, he must be judged in the scales of merit, even if what he has done seems more inclined to the scales of guilt. And if he is one of the plain people, who guard themselves against sin, but occasionally stumble into it — if the doubt is balanced, he must incline it and judge him by the scales of merit, as Chazal have said: "If one judges his friend by the scales of merit, G–d will judge him by the scales of merit." And this is included in the Blessed One's behest (Vayikra 19:15): "In [the scales of] righteousness shall you judge your fellow." And even if the thing seems more inclined to the scales of guilt, it is very fitting that he regard it as a doubt and not judge it in the scales of guilt. And when the thing is inclined to the scales of merit, where it is certainly forbidden, according to the din to judge it in the scales of guilt, and he judges it in the scales of guilt, as a result of which he goes and demeans him — aside from transgressing "In righteousness shall you judge your fellow," he transgresses further the issur of speaking lashon hara.
In paragraph 8 he says:
And even when the scales of guilt are more heavily weighted [than those of merit], where, in respect to the din, the issur of judging him in the scales of guilt is not so great — that is in the terms of perceiving him as not having acted in accordance with the din — but he should not rush to shame him because of this before others without having ascertained that this is consistent with all of the qualifications listed above in Principles IV and V and in Principle X. For there are many things where even though the din may not be with him, it is still forbidden to shame him because of this, as will be clear to those who study these principles.
See the Be'er Mayim Chaim where the Chofetz chaim brings down his sources and adds some clarification.
It comes out that there are 3 types of people:
Someone who is known to be a tzaddik (never stumbling) must always be judged favorably, even if it doesn't seem likely at all (as long as there is some possible way to exonerate him.)
Someone who is a rasha (known to do wrong things willingly) should be judged negatively; we assume he had negative intentions unless we know otherwise.
Someone who is a beinoni- trying to do good but occasionally messing up: in this case it depends. If the possibilities are balanced- there's a 50/50 chance that he did the right thing or wrong thing- then we need to judge favorably. If it seems likely that the person messed up, then it is proper to avoid deciding definitely that the person messed up; it's better to say "I don't know what the story is" but it's not obligatory to avoid passing judgement.
Keep in mind that all of the above refers simply to the question of judging a person's actions favorably or not. As indicated in the text of Chofetz Chaim, it could be problematic to act based on a negative judgement (to withhold certain benefits etc.) even if one may judge negatively. It's a whole separate question.