Hi Percy,
I'm pleasantly surprised that you're in the exact same situation I'm in: somewhere in the process of reading
Emergence. Nice little book, contains some profound insights.
I'm still of the opinion you should give up 3D, and I'll back it up with some numbers. I'm certain you can do this yourself, but maybe you just haven't come around to doing it. It's revealing though.
Let's assume a conservative value for the time it takes to calculate one complete cycle of your universe: say one second. This is tediously slow and you would probably want a faster pace, but let's just see what this means. Let's further assume that you've got an incredibly powerful computer, that can calculate the new life situation of one grid unit in a nanosecond, takes another nanosecond per unit to calculate its 3D situation and yet another nanosecond to calculate its 2D representation. This means that you can calculate the new situation of a third of a billion units in the time alotted for a complete cycle. In a 3D universe, this means a grid of less than 700 units per axis. Well now, that's not the very large universe you envisioned, is it? And it gets worse: in reality, your computer isn't nearly as fast as I assumed in this example, so the number of units on an axis is going to drop dramatically. If your computer is slower by a factor of only 10, you end up with a good 450 units per axis. And if you'll be wanting a faster refresh rate, the number of units drops even futher.
Going back to the optimistic nanosecond-computer scenario above, let's see the effect of dropping the 3D requirement. You no longer lose a nanosecond on the 3D calculation, so now you can calculate half a billion units per cycle. In a 2D grid, this means well over 22,000 units on an axis. Still not the meganumber you'd like, but it's a hell of a lot more than 700.
Regarding complexity, I think you're overestimating the effect of 3D. The gain, if any, that you expect from the sheer fact of having more directions is completely bogged down by the greatly reduced number of units. Complexity is a matter of numbers. If more complexity is what you're after, you should go for larger numbers.
Of course, you can probably implement some clever tricks to cut down on the number of calculations, but I think that without dropping 3D, they may not help very much.
Now, for something more constructive: one of the tricks you might want to consider is an 'expanding universe'. What I mean by this is that the computer could keep track of the outer limits of the region that contains objects. In the beginning this region could be small and concentrated around a 'center of the universe'. The computer wouldn't have to bother with calculating the situation outside this region. As objects drift apart, the region to keep track of would slowly expand. This means that, as time goes by, the cycles would get progressively slower.
That's it for now. I don't have time to help you programming, but if I have new ideas, I'm perfectly willing to share them.
Cheers.