1. I agree with the breaks suggestion. 4 hours is a pretty tightly run game, but tighten it further. Try to make things go faster all around so that you can also fit in a break or two in that 4 hours, yet still get the same things done. (And get the same karma/rewards done, which is important to many players) It's a win/win because not only do you get the breaks in, but you take away excuses for non game related chatter.
2. Try to engage the rude player more. Or the boyfriend, since I assume he's more interested in the game. Now the most hamfisted and clumsy way to do this is to do something like shoot at them directly. Or to have an explosion or something shocking happen quite nearby. It's hamfisted, but it really works. Players rarely fail to show at least a little interest when their asses are directly on the line in some fashion. (Unless they have complete disdain for the game and zero investment in the character. At that point you are having serious issues) I used to just throw random encounters when the chatter got out of hand in my old fantasy games. Cheap trick, but it worked. It's important that you not view it as a punishment though or create the impression that it is such. Otherwise you look like a pelutant child and it causes worse problems. And it should be used sparingly, not constantly. It's something to do if other things are failing.
3. Like # 2, engage them, but use more subtle measures. Draw them in with customized stories that matter to their character's. Give them NPCs or locations they will like and then put those people or places into the story. If they like their character's home or some contact, then put them into the story. Engage them with money. Everyone's eyes light up when there's a 100,000 nuyen based on the outcome of the coming heist or battle. Sort of cheap, but engage them with shocks, such as the gruesome torture of some NPC they know by a campaign villian. (Yeah, what's left in the bathtub no longer looks like Charley)
4. Alter roles more. Watch the show Leverage, as not only do they do this constantly, but they even have the actual character classes shadowrun has, or fairly close. They even have the Face. Force the Face and Hacker into combat. Force the warriors and mages into social situations. Keep them guessing about what situations might come up. Make it appear like the situation is going to go as they expect, then pull a twist on them. They think the hacker and Face are safe in the back behind the warrior types, but a pack of ghouls is silently creeping up behind.