Originally Posted by morsk
There must be more to this, and/or it's bugged, because Villain is one of the rarest achievements on Steam. It's rarer than the achievement for reaching Arx.

Any chance other parts of the code can increment the "source sucked" counter, causing it to leapfrog from 2 to 4, and never compare equal to 3?

The counter should never be greater than 3. It is only incremented when the player uses the skill on an NPC with the GHOST tag, does not have the VILLAIN tag, and TimeSuckedSource does not equal 3. So, once you get the VILLAIN tag, the counter stops incrementing.