I have used self-hosted Darwin Calendar Server & more recently, Google Apps for a client that needs iCal syncing. Somehow we seem to have more problems with CalDAV syncing (e.g. timeouts during sync, unavailability) with Google Calendar than we ever did on DCS. It seems like, and probably is, an afterthought for Google.
[edit: ActiveSync, now supported in iCal, seems to work pretty well]
[edit: ActiveSync, now supported in iCal, seems to work pretty well]