After struggling with debugging an issue with the Microsoft Push Notifications Service for Windows Phone (MPNS) today, I discovered that it's not possible to get a ChannelUri when on a Wi-Fi network that uses a proxy. It can also take several seconds (up to about 10 if today is anything to go by) before a channel is obtained. (Previously I've only known it to take less than 1.)
If a device has a low battery or battery saver is enabled you cannot get a URI either.
Just documenting as useful to know.