Cruise control implementation
...would frequently windup when the
  car didn't respond fast enough.


Sounds like your loop gains are outta wack (technically speaking).
PID loops are bound by the frequency response of the system they are driving.
I would think the throttle response is violently faster than the GPS velocity information...making high frequency hunting a given.

Start with a small Kp and all other loop gains at zero. Work Kp up until you get a response that is slow and smooth...so you are following an offset of the curve of the set-point. Only when you have something "under-damped" can you start bringing gains up and closing the error. 

If the GPS is really slow, some interpolation of the velocity data between updates will allow the loop rate to be increased. A rate limit loop around the output would also help. 

A PID loop is a model of a system....the system you have....not the system you want :)