I emailed Google Checkout with a help request, stating that the 500 error is only returned when you don't receive any data. Here was there reply:
---
The HTTP 500 error you are receiving indicates an error in your server.
Server errors can have a number of causes; for example, you may have
problems with your server configuration or with the code that's running at
the callback URL.
Please work with your technical resources to determine the exact nature of
this error. Since we cannot determine the precise cause of this HTTP 500
error, we cannot give you valuable help until you examine your system more
thoroughly.
---
I wrote back explaining that I've already worked with our technical resources, and asking what do to next.
FYI, I haven't seen any more of these issues since mid day yesterday (I've seen a few more error #1s, but no more #2s).
-rob.