As to B's behavior. Thanks for all the helpful comments. I learned a lot from them. For now we've had a couple of very enjoyable days, because of two things: keeping us out nearly the entire day, and whenever he starts up with anything quickly re-directing. It works like a charm. I think I will keep doing this until he realizes slapping me and continuing to touch things after I've said "no" is not a fun game we're playing together.
That's the problem - he does these things full of joy and laughter. He's not mad or being bratty. He genuinely thinks it's fun. And those couple of miserable days have shown me no matter how serious I make my face and voice, no matter how much I say no and don't touch or don't hit, no matter how much I put him down or walk away, he does not get it. And then I just get infuriated and try to come up with these awful "punishments" that he also doesn't understand or make any logical connection to. The time may come to institute a time out system - but I truly believe in my gut he's not going to understand. And I simply cannot face days or weeks of screaming, crying, and my own anger escalating, just to have him keep up with the shitty behavior anyway. My heart can't handle it - and neither can the skin on my face! If we were in public and he was doing something I didn't like I would swiftly pick him up and get him occupied with something else. So I've been doing that at home. It sucks to have to be so on top of him to make sure he doesn't mess with the faucets or oven burners or appliances...but it's manageable. Especially when we just stay out all frigging day. He's much more pleasant to be around when we've done active things all day rather than sitting home for even part of it.
I'm so glad no matter how shitty our day was it always ends with hugs and kisses and I love yous. I love that he always hands me his tooth brush with such confidence once I've tucked him in, and I love how cute he looks under his little blanket all happy and ready for a new day's adventures. It's times like those when I feel more confident that we'll get through this.