Not 100% sure for LL, but in OBR (MLB) and NFHS:
The batter was out the moment of strike 3, as 1B was occupied at the time of the pitch.
It is the catcher's responsibility to know the batter is out and not play on him.
The runner is free to steal at his own risk (assuming the rules allow stealing), and can thus be put out as he was.
Everything sounds like it was done properly, but someone else with more LL experience should confirm this.