I was in the same boat as the OP. Stuck at 99% for more than 35 minutes. I had just fired up the P4 after some repairs and GO 4 said a firmware update to the bird was required. I hooked up the direct USB from my Nexus 7 tablet to the bird and began the update. The Remote Controller was not in the loop as far as I know, since it wasn't connected to the tablet by USB, so I turned it off to save battery power.
The onscreen message of course says don't turn the power off during the update. However I followed the suggestions above and turned all devices off. After restarting the aircraft, tablet and remote controller, sure enough it said I couldn't take off because the remote controller firmware needed updating. Fortunately that was quick and easy.
Once that was done it said I couldn't take off because I'm in a restricted area. I had to override the warning and agree to let the system send me an unlock token by text message. I had the text sent to my phone, because my Nexus 7 doesn't have phone or text capability. Once I entered the 6 digit token into the correct box in GO 4 I could then access the screen to override the lockout, which I did. Good news! Everything works now, including my refurbished (by me) Phantom 4. I did a brief test flight, and all is well.
I recently bought a new P4Advanced, so I put a new shell, landing skids and props on the P4 and now I'm going to sell it on eBay to help pay the cost of the P4A. I only replaced the shell because I had a crash on day 2 of getting the P4, and it bent one arm of the shell and broke a couple of props. I snapped and pressed the shell arm back in shape and put on new props, and it flew perfectly for the next year with the slightly bent shell arm. The landing skids had minor cracks near the mount points, and all four screw covers were missing. That's why I put on the new shell and skids, to cure the cosmetic problem. The shell replacement is a big, hard job, but I know a lot more about the innards of the P4 than I did before, and that alone is worth the trouble. There are some helpful videos on YouTube and a handy iFixit illustrated step by step guide for replacing the shell.