I have an idea, but I don't know how viable it is.
What if, when you're getting ready to queue up, you can set your...time limits for each role? Using myself as an example...
I have a strong preference to play Jungle or Top. So I don't want the queue to wait for either of these roles, and set their timers to 0. I'm ok with doing mid, but only after a 10 minute wait-so I set it to 10 minutes. Next up I'd prefer support but don't feel like playing it often. I set it to 25 minutes. I never want to ADC, so I set the timer to infinite.
As my queue reaches each of the set times, it'll start seeing if it can fill me into those roles. At 10 minutes, I might end up in mid if it can find a game for me. Otherwise it'll keep looking until 25 minutes.
I'm sure someone is bound to come along and say "but then everyone will set support as infinite and we'll never get to play!" Guess what happens? Eventually some people start to cave. They set their limit to whatever it may be-30 minutes, then they're ok with playing support. After a 30 minute wait, they end up as support, because they don't want to wait any longer.
I don't now how feasible it is. Maybe it's a dumb idea, but every player being able to customize how long it should wait before placing them in any given role would be...awesome, I think.