To summarize an offline discussion:

We have three options here – one would be to only call raiseRegistration if a device token is present, and another would be to pass a channel ID or a device token, with an 'isChannel' boolean. Or we could modify the payload with both a channel ID and a push ID, assuming that push ID is only a device token or APID, and modify the docs so devs are aware that the push ID can be null on iOS and that the channel ID will be null on Android. 

The former seems like a better fit, since we want to maintain some semblance of continuity between platforms and Android currently lacks channels. We could either avoid calling the raiseRegistration method if the device token is nil, or just disable channels in the plugin altogether. We'll eventually need to support channels once Android gets them, but IMHO it feels hacky to try to nudge channel IDs into the payload space that was previously occupied by device tokens, and making the payload semantically distinct between iOS and Android defeats the purpose of Phonegap (however deluded a purpose that is). My 2 cents.