The Google Now only listens for the trigger phrase when idle - which is done all locally, without needing to talk to the servers.
It has a battery impact but much less than sending all the voice data continuously to a server somewhere. The biggest battery killer would be the wifi or 3G transmitting non-stop in that case.
It wouldn't have to transmit non-stop -- it could do some parsing/cleanup locally, then queue it up and upload it periodically with other, expected FB traffic.
Your phone reads sensor data as a base state.