Let me say to anyone that has this problem to please just try LP Erase again, but make sure that after clicking that OK button, that you wait for the board to actually reboot itself and connect itself back to GCS, before doing anything else. It should take less than a minute. Do NOT just wait a little while, see that the blinking is not changing, and unplug the board.
I bought a CC3D Atom from eBay ($9 shipped) recently and thought I would try to recreate this issue.
https://www.ebay.com/itm/Openpilot-Mini-CC3D-Atom-Nano-CC3D-Flight-Control-for-FPV-QAV-ED/122116570993Short version: I did not Erase Settings and I did have a very similar sounding problem with it with LP 16.09, but LP Erase Settings fixed the problem.
It came with this firmware on it:
Firmware version: 20150512 23:55 (29b92655-ffca2cd6)
Device ID: 402
HW Revision: 2
Flash access: RW
BL version: 4
Max code size: 118684
RELEASE-15.02.02
CRC: 1160622165
I copied off the old firmware using Firmware->Retrieve and flashed 16.09 on it and did NOT Erase Settings. I verified (in System->AccelGyroSettings->accel_bias) that the level calibration was all zeros. I did a level calibration on it, Saved (OK), verified the calibration numbers were not zeros, and exported it. It exported OK.
I made a copy of the settings file and modified a number in each UAVO. When I tried to import these modified settings it locked up at 2%. After 5-10 minutes of it sitting at 2% (green LED on, blue LED slowly fading on and off), I rebooted and exported the settings and found that nothing had changed. It was all defaults except for the leveling calibration I made. So note that the first Save (after leveling calibration) did appear to work OK (was indeed saved permanently).
I erased settings (Halt, Erase Settings) normally with GCS and now everything is working. I can say that the erase took longer than I expected (probably less than a minute though, and it had been a while since I had done an Erase Settings), but I didn't time it. I was getting tempted to just unplug the board when it finally booted and connected to GCS.
I imported settings: stock, modified, stock, modified, ... etc. a total of 16 imports with no problems, so I gave that up.
I put the old firmware back on it, Erased Settings, and booted it; then put 16.09 back on it and repeated my initial steps (level calibration, save, etc., export, import) and had zero problems, so at least for me it was something strange on the flash (settings storage) that got fixed with a standard 16.09 LP GCS Erase Settings (Halt, Erase Settings).
I know that the flash "file system format" changed, maybe between BL3 and BL4. I wonder if this is what happens when you have the old flash file system? 16.09 / BL4 writes the new format. In BL4 at least the firmware is asked to reboot in safe mode and format the flash with format code in the firmware.
I'm thinking of buying another of these Atoms, and writing some code to save/restore all of the flash device.
Update: I bought another Atom from the same place, and started by reading the whole settings EEPROM, but I could not recreate the issue at all. There are some kinds of garbage data that would cause this "settings file system corruption", so that is my current working theory.
LibrePilot "Erase Settings" should fix any "settings file system corruption".