I seem to be caught in an endless loop in Pokemon Yellow. My Charmeleon is using Rage and the Snorlax keeps using Rest. Charmeleon can't do enough damage to kill Snorlax before he wakes up. Will Snorlax ever run out of PP on Rest?
Technically speaking enemy Pokemon in Red, Blue, Green, and Yellow never have their PP reduced in response to using a move and it is never checked as a condition for the AI to select a move. (I learned this stepping through the mostly well commented Pokemon Red disassmbly https://github.com/iimarckus/pokered ) Snorlax will always be able to use Rest.
In Gold and Silver onward enemy Pokemon DO use PP and aren't able to use a move that PP is depleted for.
No they cannot. In Gen I alone, trainer Pokemon and wild Pokemon have infinite PP for all their moves.
The best way to catch that Snorlax in your situation is to either use a stronger Pokemon that can inflict damage faster, level up Chameleon until he can inflict enough damage before Snorlax uses rest, or use a Pokemon in the battle that can cause Snorlax to fall asleep or become paralyzed. (Butterfree is good for this because you can catch its beginning stages early on in the game in Viridian Forest, so you might have one lying around in your box. It learns Stun Spore and Sleep Powder levels 14 and 15).