I got rather fed up with the flakiness of the USNO site quite a while ago and modified my code to be less reliant on it.
1) I have a meteobridge, which provides the sun and moon info that I need except for in one case - when there is either no moonrise or moonset on a particular day. So, I only need to reference the USNO info about once a month (which provides the day before/after rise or set).
I don't know whether software other than meteobridge provides this data, but it might be worth looking into.
2) I moved the actual fetch from the USNO site to a cron job. So when the home page of my site is pulled up, it is always reading from a cache file if the USNO data is needed. (In general, I've tried to eliminate all fetches from remote sites so that the home page load time is not dependent on anything external to my server).