I'm rather disappointed in myself after this experience, but thought I would post to help others not make the same mistakes (plural).
I was diving off a boat with a regular buddy, down to 30m. Me in a 7mm wettie (11c/52f water - I was the only person on the boat without a dry suit, haha) with an i3 BCD (inflater lever near my left hip, rather than the standard inflator hose over the shoulder) and carrying a bulky camera; her in a brand new dry suit purchased the night before. She had dived in a different model of dry suit on several occasions before and did jump in the water at the pier for a weight check before boarding the boat.
The descent and bottom time was uneventful. On ascent I indicated for her to shoot the SMB as I had my hands full with the camera (I can let the camera hang to launch an SMB myself). She started unrolling the sausage at 24m, so I indicated for her to stop until we reached at least 15m (only 15m of line on the spool). We ascended at a normal rate... 20m... 17m... 14m. I dumped some air to get neutrally buoyant. Then my buddy seemed to be shoving the SMB at me and grabbing my arm. After a bit of confused "WTF" on my side I let my camera hang and took the SMB while she clutched my left arm. I fiddled with the SMB for a bit. 12m. Realising we're still ascending I tried to dump some air, but my buddy was clinging to my left arm which is the arm I use for my inflator. With my right hand I reached for the dump cord, but with the SMB reel in that hand it was difficult to find and grasp the cord. 7m. With my right hand I reached across and pressed my deflator lever (thankfully a lever is easier to push with your hands full than a button on a regular inflator hose). But it was all a bit too late, and suddenly we're at the surface!
What had happened? My buddy had got air trapped in the legs of her dry suit and couldn't dump it. She was not practiced at maneuvers to get her feet back down. The previous dry suit she had used fitted more tightly around her calves to prevent air trapping there, so she had never experienced this problem before. As we started ascending, the air expanded and kept increasing our rate of ascent. At around the 14m mark she became a passenger, unable to stop her own ascent and clutching on to me. I failed to realise what was going on. With average visibility, in midwater I could not tell we were ascending except by looking at my computer (coincidentally on the same arm that by buddy was holding). With the additional task loading of trying to inflate the SMB while juggling my camera I was not monitoring my computer frequently enough. Once I realised we were ascending I struggled to get access to my dump valves, and by the time I did we had already ascended to the point of no return.
In the end our ascent wasn't all that quick. With me as extra drag, only the last 5m of our ascent edged just slightly over PADI's stated maximum ascent rate (though it's the last 5m that matters the most). We missed our safety stop of course, but it was just a safety stop, not mandatory deco. Back on the boat they pulled out the oxygen as a precaution, but I don't think it was actually needed.
What could I have done better?
1. Before even getting in the water I should have been more conscious of any problems my buddy might face, discuss them and any planned solutions. Not being a dry suit user myself, I wasn't thinking about her buoyancy management.
2. I must monitor depth constantly during ascent. Normally I stay slightly negative and gently fin to ascend slowly (or just wind up an SMB reel). This was the first time that stopping finning didn't stop my ascent.
3. I should have been more aware of what her problem was, rather than fixating on the SMB that she handed off to me. If I had realised her problem I may have been able to pull her feet back down and solve our issues in an instant.
4. When struggling to dump air I could have flared myself out more or even inverted and finned downwards.
I know some people may also say I should have broken free and let her ascend alone rather than risking us both ascending too quickly. Honestly, that's a personal choice. Sticking with her risks us both, but it also slows her ascent and could save her from DCS.
I welcome any other constructive comments people may have on how to better handle such a situation. It galls me that I had a rare opportunity to help get my buddy out of a tricky situation and I blew it.