I'm not sure if this has been posted in this thread before, but I used the alg M2 U/U' M/M' U'/U M2, that I figured out myself in like 5 minutes one time I was bored and couldn't find a good parity alg for a void cube. It preserves F2L, COLL and CPLL, and flips all the LL edges. I learned the OLL case 47 to make that part faster. The OLL 47 is also really easy to recognise so it makes the OLL a bit faster in general, but that's not the topic to talk about here.
Today, I was bored, and since I learned intermediate LSE like a week or so ago, I was thinking that what if I just did an M' or an M move and then did LSE EO and then fixed the DF and DB edges. After trying out different ways to do do it I found this alg M' U M U2 M' U2 M' U' M U' M U2 M' (U'). It's 13 moves STM so pretty good considering the fact that its a 2-swap. If you used EOLR, by looking at DF and DB edges as UL and UR edges you might get a better alg.
Since there was already a 2-swap in the first post in this thread, it doesn't help much, but it's an alternate alg.
If there was an <M, U> subgroup optimal solver it would be really good, because if you use RL and FB mirrors along with inversing pretty much every sequence of MU moves can be very fingertrickable. There might be one in cube explorer, but I don't have a computer so I can't check.
This way we could also generate all the parity EPLLs (or ELLs, although using edge control and CLL on 3x3 with parity EPLLs might be better (idk)) since they will be fingertrickable, as said above. If someone can tell me how to use cube explorer on an apple computer, I'll try it since my mother has a computer, but it's apple.
Now if you are a Roux solver, you can just use the EOLR case, that you get, when you do an M/M' move after the first EO+LR or recognise it before LR. That might be faster, but I'm not sure. Also, I'm not sure if this would work, but by not doing just M', but deciding whether to do M or M' you might be able to skip dots. Not sure if this would work though. Again, with an <M, U> subgroup optimal solver we could generate parity M slice cases, which is probably the best for Void cube speedsolving with Roux.
Edit: now I read through the thread, and I saw an idea that's probably better for Roux (solve UL & UR, after CMLL, solve M slice in one alg). No parity ever. The amount of cases is really low as well, it's 27, including the skip, (for void cube) (can someone confirm, please) and the recog doesn't seem too bad either.