Well, it should hide the main menu always and forever, but using LSUIElement in the plist is an older way of doing things than using both setActivationPolicy and setPresentationOptions so you might want to give [NSApp setActivationPolicy:NSApplicationActivationPolicyAccessory] a shot instead.
The LSUIElement way of doing things didn't support changes at runtime. You're mixing old and new. Deprecate LSUIElement and use setActivationPolicy on OSX 10.9+.
There is lots of discussion along these lines. This is a good answer. I wrote an answer about how to switch to accessory mode when the user "quits" the app here and that uses the runtime functionality which LSUIElement would break. So don't use it.