Franny, I'm interested in what you said re info to work with:
"don't hit paul because it hurts and makes him sad, and you're his friend - we don't treat our friends like that, and you mustn'y hit people because you're cross - if you are cross, just say so" contains LOADS of information for the child to work with"
I've really stopped doing that, bcs I found with DS particularly that I could almost see his synapses sizzling as he tried to evaluate which was the key bit of information in the whole.
Also I have huuuge tendency to go on and on and freaking on until I've battered them into submission.
Now I try to say 'Don't hit Paul - no-one likes to be hurt' or 'Stop - if you're cross, use words to show it." All followed by an Okay? to which I expect him to respond Okay, mum. (he's 7 though, so he can, and in fact the things he does aren't hitting but 7 yr old things)
And then take a huge breath and MOVE ALONG...
It's recent, but it really does seem to be working.