After thinking about the problem, I came to the conclusion that it's better to get the system up and running first before I start mucking around with the internals of the graphics engine; that way I'll have a proper game to test it with. So the thing to do is cobble together a working depth system by switching to using 3D coordinates instead of 2D in my OpenGL sprite drawing code.
Only problem is - it's not working properly. The depth sorting seems to be working, but I can't seem to get OpenGL to draw my sprites with proper transparency; the alpha values just wipe out the values of the sprites behind them. Obviously I haven't set up something properly with the myriad of confusing OpenGL flags and settings.
Another thing is I'm not sure how efficient this sprite system is going to be; from my tests it seems I can only render several thousand text glyphs before the frame rate drops down to potentially sluggish levels. I'm not going to worry about fine tuning at this early stage, but it's something I'm a bit concerned about. Might be due to some weird OpenGL settings as well.
Edit: Ah, I seem to have found a fix: I needed to enable GL_ALPHA_TEST and use something like glAlphaFunc(GL_GREATER, 0.05f) to get it to work.