Ok, so when I first thought of this idea the simplest and easiest way to do it was the way that Canon seems to be doing it. You cut the height and width each in half, leaving only 25% of the original pixel count but with the advantage of giving you full color pixels with 0 interpolation. So to use Panopeeper's example numbers, you'd get something like:
R11 G11a R12 G12a R13 G13a R14 G14a
G21b B21 G22b B22 G23b B23 G24b B24
R31 G31a R32 G32a R33 G33a R34 G34a
G41b B41 G42b B42 G43b B43 G44b B44
turns into (R/G/B):
11/19A/B21 12/1AA/22 12/1BA/23 14/1CA/24
31/39A/41 32/3AA/42 33/3BA/43 343CA/44
(without bit-depth conversion of course)
Alright, now that's a pretty quick and dirty way of doing it, but is there a better way? The method above samples four different pixels in order to get all the color information needed to generate one pixel of output. So I thought, how else could I sample four pixels?
The grid shows the outline of the post-conversion pixels in spatial relation to pre-conversion. The dots with letters represent samples taken per color channel. On the left is supposed to be a normal interpolating algorithm. The marked pixel is supposed to be showing that for that pixel it can sample the green directly, but has to create sample values for red and blue by looking at neighboring pixels and interpolating. To the right is my second idea. You only lose half of the pixels along the outer edge, so on large images you retain nearly all the original pixel count. By shifting all the pixels, each one can now sample all the color information it needs. I think this will reduce aliasing, but at the cost of introducing a different type of artifacting. I suspect that this method will not increase IQ above standard methods, but maybe I'll write it out in Erlang just for fun.
I'm starting to see why no companies really take this approach. Except for Fuji, which I've heard has a camera that doesn't interpolate. But they get around that by laying out their color filter in a different arrangement than the standard Bayer. I think that's a pretty cool solution. Anyway, thanks everyone for your input.