“host_state” represents the health of the host itself, independent of the components on the host. HEALTHY means that the host is heartbeating with the server. HEARTBEAT_LOST means the server has not been receiving heartbeats from the host.
“host_status” represents the overall health of the host considering the status of the components on the host, such as “Master Down” (UNHEALTHY), “Slave Down” (ALERT).
So, it is possible for a host to have host_status==UNHEALTHY and host_state==HEALTHY
I’ve filed a JIRA  to improve the Ambari API documentation  for clarifications as the documentation is clearly lacking.