I have a similar issue with sit at a distance and what I've been doing is working on these commands more at home and in non-distracting circumstances outside to get them more reliable. At home if we are practicing sit or down, I only reward the really instant ones, using the clicker for speed. Now that is better, I am also introducing a sit at distance. Again, I reward an instant sit. If he's a bit slow, I get a bit closer, release him and and do it again. If he sits faster, reward (which is what usually happens). If he flat out refuses, I move on to something positive for a few minutes (throw some treats in the grass, play a bit of tuggy) then try again.
In the circumstances you describe this morning, if his 'sit' with certain distractions isn't good then he hasn't really disobeyed a command, as he hasn't got it yet. Does that make sense? One-off failures in circumstances you have yet fully trained for aren't really failures, in my opinion. Also, for distractions I probably wouldn't use a sit, but an interrupter to get his attention back on me then encourage a recall.
As an aside, Henry HATES lying down on command so I'm really focusing on the sit-stay outdoors and gently encouraging 'down' at home for now. I think for some dogs 'down' can be tricky because it feel vulnerable.