I have a really weird idea that I think could solve the "complaints about people being swept" issue, but would cost runDisney more money ...
Have a cast member at the back of each character line with a sign saying what the wait time is. I'm sure they could come up with a relatively easy way to determine that (even if it's just the CM at the back texting the CM at the front saying "the person in the green shirt with bib number 123 just got in line ... text me when they get to the front" and then doing the math from there). And then have some fine print saying that you could be swept while in line and getting into the line doesn't guarantee that you'll meet the character before the official race cutoff time or something like that.
That way, when people get swept, you can just say "you were told approximately how long the wait would be and that you might be swept while in the character line ... we did all we could, the responsibility is now in your hands." As long as there's a time limit, people will get swept. The responsible way to respond is to make people aware of that fact (and what they can do to try to prevent it, like not stopping at as many characters), not to change the event in a way that affects even people who aren't getting swept.