Found the problem. I was passing parameters to Google_Service_Calendar_Events_Resource::list incorrectly.
The nature of the error message sent me off in the wrong direction for a while. So you'll get a 404 if the parameter format on a resource is incorrect. I also discovered that you'll get a 404 when attempting to request events for a calendar to which your service account does not have permission.
It would be nice to see a detailed error message in the latter case. Hopefully this information is useful to someone.