It's not that they can not change it. You give some good solutions, but also introduce a few new holes in the story. In our league it happens pretty much every race that a driver gets lapped before 25% of a full race. Some damage lap 1, a spin lap 5 and the fastest drivers on the grid are already within 10/20 seconds depending on the track you're driving.
In a 50% race which takes about 50 minutes on average a single SC can take up to 10 minutes, but they take 6 minutes on average. We have two SC a race (on average). That's 12 minutes and 25% of the race. With lapped cars getting a change of unlapping themselves we'll probably need the full 10 minutes to get back into racing. That's almost half the race behind a SC.
A 25% race lasts around 30 minutes. With cars unlapping themselves you'd have 15 minutes of racing if you're lucky.
Now, I don't have the exact numbers and there are a lot of variables at play here, but we are already at the limit of SC in our league. Nobody wants longer SC.
Are there solutions for every problem? Yes. But with every solution you'll create another problem for another situation or driver. We know Codemasters has discussed unlapping internally, but are divided on the subject. I think it was Barry who once said that in the old forum. It's not that they can not change it and it's not that they don't want to change it. It's just that they don't want to create new problems by solving one.