Hmm... one thing I can think of would be to spread out your path calculation over multiple frames. Basically, choose a point that the snake will reach in a few frames, and calculate only a portion of the path from that point to the end each time until the full path is complete. Once complete, when the snake hits the starting point of the path, have it start following.