If you're interested in a clean Particle native/specific neopixel replacement take a look at pixeleds-library for controlling addressable LEDs.
I created this several years ago (8?!) but just recently updated it to Photon 2 (using SPI).
It is published as a Particle library (pixeleds-library 2.0.1) and the fully documented source code with example usage is available on GitHub: GitHub - krsmes/pixeleds-library: Learning how to control addressable LEDs
The animation support is quite extensive. There are 15 built in animation function to choose from and you can write your own -- which can be as simple or complex as imaginable (see pixeleds-library/examples/candycane-animation.cpp at master · krsmes/pixeleds-library · GitHub for a complex example).
The logic for updating the LEDs is completely separated both from the animation "Pixeleds" support and from each other between Photon1 (custom timing) and Photon2 (SPI).
This currently support WS2812B and SK6812W on both platforms but could easily be extended for other types. It has built in support for any RGB / RGBW ordering on the output (e.g. GRB / GRBW).
Its a fun toy project but I think the code is cleaner than any other addressable-LED support libraries I've seen (which is why I wrote it).
Enjoy.