Full disclosure: I don't care even slightly about celebrating birthdays, did nothing for my 30th, and think weddings trump birthdays as a general rule.
I think in your case, though, that given that SIL moved up her wedding date, that there are others' birthdays as part of your celebration, that you have other guests coming, and that you've compromised by being at the actual wedding for 3 hours, I think you're off the hook, and can go off to your birthday party.
For the sake of family and marital harmony, though, I'd happily let DH stay at the wedding, and let him make it up to me with a special something on your actual birthday.
This comes closest to expressing my sentiments.
OP has to take her exam - that's non-negotiable. She can show up for the wedding (a bit late). She can make an appearance at the reception, circulate awhile and then bow out.
I would give DH a pass and let him spend his sister's wedding day - and evening - with her.
The Sunday presents opening is optional. OP and her DH can decide how they want to spend Sunday. It's perfectly reasonable for them to spend it together, especially since it's a milestone birthday.
DH and I have been married a long time. We don't always go to everything together. Sometimes one of us shows up for an event - or stays longer - and we consider that the more available spouse is representing us both. So for OP's DH to spend more time at a wedding (in his family) seems normal to me. Where I think the SIL and MIL are being unreasonable is in pressuring OP to be there for the entire weekend, when she has other legitimate demands on her time.
I'm all in favor of compromise, especially in family matters. Hopefully, OP and her DH can make some decisions, together, and feel good about them.