I've been playing around with Floyd–Steinberg dithering in order to achieve more continuous color gradients.
This is slow as molasses of course, and even with optimization I don't think it could be used in a game. But perhaps it could be used in a ray tracer or other, more temporally relaxed image generation applications.