Pack it in a box and put it in your car the next time you are going to see the ones who think you should keep it. Mention that you are going to donate the dress to goodwill and if one of them says that you shouldn't, you should store it--go get the box and give it to them, saying something like "since you think I shouldn't donate it, here is the dress for you to take care of. I don't have room for it anymore." Then beandip.
Leave before they do so that you don't get stuck with the box. Then email exfriend and tell her the name of the person who has her dress now.
Or, if you know where she works or her dh works or where they live, take the box there and leave it for them. Or drop it off at her mom/mil house if that would work.
Two years is plenty of time to keep the dress--way, way to long. I am surprised you kept it that long. I would have been delivering it to her after a month. However, you did, and there is nothing wrong with giving the two week deadline and then donating it. If she really wanted it, she would have gotten it.