Skynet Is Stupid
Skynet has attempted three times to end the life John Connor. In all three cases, Skynet sent back Terminators to do the job:
- A T-800 to terminate Sarah Connor before John Connor is born.
- A T-1000 to terminate John Connor at the age of ten.
- A T-X to terminate John Connor at the age of twenty.
Skynet failed all three times. However, in year 2018, Skynet had two opportunities to terminate Connor.
During the film Terminator Salvation, Skynet had captured and identified Kyle Reese:

So how is it Skynet didn’t immediately terminate Reese? Doing so would have terminated the future father of Connor and prevented Connor from ever being born. Yeah, this sets up a time paradox, but do you think Skynet gives a crap?
An later in the film, a T-800 grabs a hold of John Connor:

Did the T-800 snap his neck, punch into his chest and tear our his heart, break him in two? No, instead the T-800 throws Connor across the room:

Sure this hurt, a lot, but it’s no termination. This was the only time during any of the Terminator films that Skynet had physical hold of Connor. Why not just terminate him? Throwing Connor gave him the chance to get away.
There’s only one explanation: Skynet is stupid.
