So after talking with matzew for a bit, I've put together this list of things that need to be done on Android to have a good push experience (for the user).  My goal is that we discuss these things to inform a (eventual) push client spec.

1)  Gobs of XML Boilerplate.
   the Android manifest needs permissions and uses permissions stanzas as well as defining the Google Cloud Message receiver.  *We should probably have tooling which does this for the user*
  see: https://github.com/secondsun/devnexus2013demo/blob/master/coffeeExample/AndroidManifest.xml

2) A Intent handling Service.
  This Service class extends *GCMBaseIntentService* has three responsibilities, *Registering* clients, *Unregistering* clients, and *Handling* messages. 
   see: https://github.com/secondsun/devnexus2013demo/blob/master/coffeeExample/src/net/saga/android/coffeeexample/GCMIntentService.java

  I would prefer developers not have to extend this class, but that is a talk for a different day.

3) Some utlities for handling/parsing/routing notifications to other bits of code.  Again, this is a talk for a different day.

Appendix:
  Here is a link to a class based HEAVILY on Google's Service Utilities class from their demo apps
  https://github.com/secondsun/devnexus2013demo/blob/master/coffeeExample/src/net/saga/android/coffeeexample/ServerUtilities.java