Here is my take:
Option 1: Keep her on. Obviously this wouldn't be necessary if she has an understudy, but bringing in someone fresh this late in the game (unless they are amazing and have a lot of free time) is not likely to improve the situation and in fact dropping her is likely to create a horrible vibe around the production. Unless her staying on is making the rest of the cast unhappy and disgruntled it could be your best bet to stick it through.
Also, I can see why the ultimatum didn't work. They rarely do in high school settings, especially when academics and health interfere. Priorities need to be kept in order, and on this level both of those are legitimate excuses. This play will end soon, her college career is just beginning. If you decide to keep her on, my recommendation is to ask her when she is available rather than telling her when she has to make herself available. If you can't be there when she has time, perhaps another student could work with her.
Option 2: Bring a new face on. Again, I don't recommend this option unless you have an actress who has proven herself to be a quick learner, awesome with lines and blocking, and just happens to have no projects going on until the production closes.
Option 3: Promote from within. This option I have seen be successful in the past on the high school level. Are there other actresses in the cast in smaller roles? That actress would already know the show and was probably at most of the rehearsals, therefore familiar with the role of the problem actress. She would likely be thrilled with the promotion to a larger role. Bring in another actress to fill the smaller (and likely easier role) and voila you have a workable solution.
If there is concern of dropping this girl from her final production, you may try offering her this smaller role. If her ego isn't too bruised (some personalities take these situations harder than others) she might be grateful to stay with the production. Or she may get pissed and pout the rest of her senior year. Her choice, not your responsibility, and at least you tried (which is more than most people would do for her in this situation). Remember, this isn't meant to be punishment, you are just doing what needs to be done to keep this show running.
Conclusion: No matter what you choose, it is a lot of time you will be dedicating to this. Option 1 will require you being extremely flexible coming in whenever the actress is available, even if it means early morning, lunch meetings, study hour sessions or post-rehearsal work. Option 2 may work easier into your schedule, but will require 2-3x the time and effort to catch someone up on 2+ weeks of missed rehearsal. Option 3 may be easier on the production, but now you have 2 people who will likely need your help to learn their roles.
My advice is to recruit an assistant or two (perhaps your drama teacher could offer extra credit to her classes) who can work with whichever option you choose to get everyone caught up and performance ready. Your time will be less demanded (all you need to do is catch them up on blocking, then have your assistant(s) run lines and rehearse blocking) and they can do their job mid-rehearsal while your are working with the rest of the cast.