Someone (wish I could remember who. Credit where credit is due and all that) had proposed the solution in a previous mod post to simply separate civilian names and costume names where it made sense to do so. So, to use your example, we'd have "char:Green Lantern" to search for GLs (be it Hal, Kyle, Guy, John, whoever as long as they have a green ring at the time) and "char:Hal Jordan" to search for Hal (whether he's GL, Spectre, or rainbow lantern at the time).
I wish I could say you could then search the GL tag and Hal tag together to find instances of Hal as a Green Lantern, but it seems searching multiple tags is additive, not subtractive. Way to go, LJ/IJ.