Any chance that the server times are offset? An easy way to check is to go into Administration and HQ Health, and if you check the tab for the agents it should have server offset. Sometimes if this is off, the availability is calculated as not available since the last report is stamped before the server time and the metrics are still reporting in.