The solution for me was the DUE, which is an ARM chip and has more available memory to work with. The drawback is that you need to jump through a few hoops to get the core installed in your IDE since it doesn't come with it by default. After that, it's just another arduino with lots of extra available IO.
I'm running 658 neopixels, and using a CRBG struct array to hold and work with them. At one point, I had as many as 900 running along with all of the rest of my code which has multiple classes to handle the various things I'm making my lights do, and had no issues at all.
This appears to be a completely authentic Arduino device, and has all of the correct markings and box. Mine also came with a protective bottom plastic mount. I'm not sure if that comes with all of these, but if it does - that's pretty awesome too. It makes it much less likely that I'll accidently short it out on something on my desk while I'm playing with it, and makes it pretty easy to mount.