Ok, I was taking a config template file (text file with PXXX = VALUE), and looping thru with PHP and generate XML based on the default template that I downloaded from grandstream.com. I striped most of what I did not need for the GXP280, stuff specifically for other phones, but left some blank values.
When an XML file has lots of empty pairs <pxxx></pxxx> and the phone downloads it, and reboots it chokes. It would start taking 3 minutes to boot and not register, also it would not re-download the xml file. This misbehavior was from a fresh factory reset state.
If I added logic that dropped empty xml elements, the problem goes away. So I have two conclusions that I don't have time to test.
1. The xml parser is broken and can't handle it.
2. on of the PXXX values specifically kills the GXP280
I would classify this as a bug. The phone should handle my well formed XML document and disregard settings it does not understand.