You have a really neat idea. It might be possible if you can eliminate some issues.
You probably already read about a property reported by the LocationSensor called Accuracy. Using the Location Sensor If Accuracy is a small number what you hope to do might be possible; if it is on the order of 10 m or more it could be a huge problem. The problem could be ameliorated by filtering out all geocoordinate values larger than a fixed value at the expense of possibly mislocating the accident. Accuracy of the location fix varies with each LocationChanged event.
These comments from an earlier post are still valid (whether using a circular or rectangular ringed fence):
Rectangular ring fence is a great idea, except if the road is curving as you noted.
Regarding your item #1, by the time someone clocks the accident, their location will likely be somewhere down the road from the accident they report (unless they stop). A vehicle traveling at 100km/hr will travel about 28 meters in a second.
Placing an accident location in your database might be sufficient to indicate the accident hazard is near you. It isn't necessary to know which lane the accident is in. A ringed fence is not really needed. Poll your database accident location Tag and continually calculate the distance the user is from the reported accident. Sound an alarm when they get close and stop the alarm when they are farther away again. You mention three other valid ways to address proximity to the accident. Actually, traffic in both directions would benefit by knowing their distance from the event alerting them to a hazardous condition. I would keep this simple and merely calculate a distance between user and the accident. This tutorial shows one way to possibly code the distance calculation Social Distancing ... a CloudDB / Location Marker Tutorial . The complex solutions are exciting but using them might introduce uncertainty sometimes rather than increase confidence in the information.
You will have other issues. To be effective the accident location needs to monitor continuously. What will happen when your app goes to sleep? How do you determine when to remove the accident location from your database?
Let us know how your experiments work out. Your Project is very interesting. The community will be interested in what is possible and what is not.