Well I tried out my matrix idea. Detect shadow matrix, set stencil. Worked really nicely for all games, except Spikeout. Spikeout doesn't use any sort of shadow matrix to squish a 3d model into a plane. The polys themselves have zero height, and without stencil z fight like crazy.
The last possible option must be the hardware is sorting transparent polys. Actually sorting individual polys is probably crazy expensive, not to mention the problem of polys intersecting each other, which definitely happens in ECA with the broken glass.
A cheaper option might be to simply do a depth only pass on polys of the same type. That would stop any overlapping ones, and stop all z fighting completely. Not too expensive either.