It'll be impossible to remove crashes completely and I don't think sprinters going down at the very end is most people's biggest issue, although I don't think anyone wants riders to get injured. Ewan went down through loss of control/touch of wheels/whatever that had nothing to do with the route and that's always going to be a risk. Unless they decide to ban people they can determine caused a crash, whether it's judged an accident or not, riders will push the limits to try and win.
The biggest problem most people seem to have with crashes on these types of stages is affects the GC race, because GC riders are forced to mix it at the front of the peloton with the sprint trains, or risk losing time by getting stuck behind a crash, gaps happening at the finish etc. The 3km rule is supposed to help here, and it does, but it only applies if there is a crash, so the GC riders still have to be there in the mix. This means that crashes are more likely. Taking GC times earlier means that GC riders, and their domestiques, can drift back and let the sprinters and their trains get on with it. There will still be crashes, but they would have a much smaller impact on the race overall and hopefully they'd be reduced as there would be more space on the road. I don't think it'd have much of an effect on the overall racing. People who want to go for yellow can still go for yellow. The break may actually work together more to hit that 10km mark as far ahead of the peloton as they can and you can still give bonus seconds on the sprint line to separate the winner and determine jersey wearers. I honestly think that the impact would be overwhelmingly positive.
I suppose the other option is to keep cutting team sizes. 5-6 riders per team is going to cut the number of riders on the road significantly.