Sure does look like a caching issue. The Refresh, Update and actual query also complete noticably faster through vCenter.
ESXi hostd.log and vpxa.log when running RefreshHealthStatusSystem() through vCenter:
(Get-View (Get-VMHost -Name host1 | Get-View).ConfigManager.HealthStatusSystem).RefreshHealthStatusSystem()
2012-11-20T15:11:15.622+01:00 Hostd [39D8AB90 info 'TaskManager' opID=3e4343d9-df] Task Created : haTask-ha-host-vim.host.HealthStatusSystem.refresh-110553556
2012-11-20T15:11:15.623+01:00 Hostd [39D8AB90 info 'TaskManager' opID=3e4343d9-df] Task Completed : haTask-ha-host-vim.host.HealthStatusSystem.refresh-110553556 Status success
2012-11-20T15:11:15.624+01:00 Hostd [39E0FB90 verbose 'Cimsvc' opID=3e4343d9-df] Ticket issued for CIMOM version 1.0, user root
2012-11-20T15:19:24.285+01:00 Vpxa [390EBB90 info 'Default' opID=4f10e218-1e] [VpxLRO] -- BEGIN task-internal-389 -- -- vim.host.HealthStatusSystem.refresh -- 5208fd2e-1207-0253-60e8-f580692d8cbf
2012-11-20T15:19:24.287+01:00 Vpxa [390EBB90 info 'Default' opID=4f10e218-1e] [VpxLRO] -- FINISH task-internal-389 -- -- vim.host.HealthStatusSystem.refresh -- 5208fd2e-1207-0253-60e8-f580692d8cbf
However, nothing is logged in the ESXi vpxa or hostd log when executing UpdateViewData() or the actual data query through vCenter.
Running UpdateViewData() or the query against the ESXi host directly works and produces loads of messages like this in the hostd.log:
2012-11-20T15:16:23.882+01:00 Hostd [392FDB90 verbose 'Locale'] Default resource used for 'host.SystemIdentificationInfo.IdentifierType.AssetTag.summary' expected in module 'enum'.
2012-11-20T15:16:23.882+01:00 Hostd [392FDB90 verbose 'Locale'] Default resource used for 'host.SystemIdentificationInfo.IdentifierType.OemSpecificString.label' expected in module 'enum'.
2012-11-20T15:16:23.883+01:00 Hostd [392FDB90 verbose 'Locale'] Default resource used for 'host.SystemIdentificationInfo.IdentifierType.OemSpecificString.summary' expected in module 'enum'.