Помимо мультиплексирования, в чём принципиальная разница между Google Mobile Services (Google Cloud Messaging) и обычными слушающими сокетами? В обоих случаях модем остаётся активным во время соединения. Я так полагаю, что GMS может реализовывать механизм pull, и тогда модем засыпает между запросами, но сообщения через Гугл доставляются достаточно шустро, поэтому если pull и используется, то частота вызовов очень большая. Если же там обычный ждущий сокет, то почему приложениям запретили создавать свои подключения в фоне, заставив выводить уведомление? Допустим, это защита от случая, когда приложение реально грузит телефон в фоне, но почему бы тогда не создать прослойку, которая разрешает лишь создание сокета, а для всего остального пуская выводится уведомление? Может кто-то знаком с внутренностями и может пролить свет.