I did a quick check of listner. It worked just fine in "3D". You just set up the Jinx matrix as 64x8. The easiest way to see the effect is text. You will see it wrapping it's way through the cube. Overall Jinx is easy to use.
As for Spark Pixels architecture - you hit the nail on the head. What I have started to do is create a Spark Pixels "library" that could work with either FastLED or neopixel. The idea is that the library handles communication, mode switching, device info, brightness, speed, etc. The application then would define the modes and some of the switches. For each mode defined it would provide a "reset variables" and a "run mode" section. These to be done with some callbacks. I've gotten the library and a basically "empty" app to compile and run. Haven't actually set up a real app yet.
This is actually a bit ugly and quick and dirty. I was just cannibalizing your code from the original SparkPixels. Perhaps it would be better to re-architect it a bit to make it cleaner. I'd be happy to share my current state with you - you could probably do a much better job with the right architecture.