PeterH:
The failing code calls vcs.CallStatus() each time around loop().What does that method do, and how long does it take to execute?
Its a library function that checks the status of the line. Busy, Receiving call, etc
I'm not sure how long it takes but I'll check when I can get back to the arduino.