It sounds like you are doing such a great job! The one thing that has really helped me is trying to identify with why my son is hitting and respond empathically before letting him know about the consequence. For example, "You just hit Sam. Are you feeling angry at Sam because you really want his toy (or because he stopped playing with you, or he isn't doing what you want etc.) It makes sense that you would feel that, but we can't hit. Come tell mommy, or ask for a turn, but no hitting." And then you could implement whatever consequence you want if it seems necessary. Sometimes you might not even feel it's necessary because you might see him learning, 'oh, I have this strong feeling and my feeling is okay. I can express my feeling, but just no through hitting.' I think the tricky thing is when kids feel the angry or upset feeling that led to the hitting is not okay. That can make them pretty stubborn in continuing to be provocative. But it can help so much if they feel understood and know that mommy thinks the feelings are fine, just not the behaviors.
Good Luck!
K. (mom to Charlie, 3 years old)