The big question is: what do you want more? Additional long-term active users (that subset of the like-spamming users who hang around afterwards), or a fair competition? Idle users don’t really “cost” much, so that shouldn’t be too concerning; the main issue is whether the “unfairness” aspect damages the forum more than the additional active users.
If you decide you’d prefer to run a fair competition, I think you’ll need to write a small plugin to restrict TL0/TL1 users from giving likes (you need to restrict TL1 from giving likes, because invited users are TL1 by default, and also be careful with the “must have given N likes to be promoted” settings). Such a site setting might be accepted into core, perhaps, but that’s not my bailiwick, so I’d get @codinghorror’s imprimatur before going too wild with a patch to core.
An interesting “middle ground” might be to let everyone “like”, but only actually count likes from certain users – say, those who registered before the contest started, or who were TL2+ (or TL1 and not invited) when they liked, or who have become TL2+ during the contest, or who have otherwise demonstrated some other sort of allegiance to the forum. Whether you announce the criteria, or keep them secret, would depend to some degree on the dynamics of your forum and the competition. I can imagine people would get confused and upset if they saw someone who got “less likes” winning, if you’ve stated at the beginning “the entry with the most likes will win!”, but if likes is a “contributing factor” to the decision of who wins, it’s a lot easier to discount spam-likes discreetly.