Guys, Why did he not want to have sex?

Been friends with this guy for 3 years. We have been hooking up on and off since Thanksgiving. He hasn't seen any other girls just me. According to mutual friends. We've sexted, we'ved had sex. So when he called me up the other night he offered me food that he'd order and he said he wanted me to stay over. But he said no sex. I thought he was joking so I just laughed and agreed. He greeted me with a kiss and He had gotten all this food for us and he made a picnic on his bed and we talked for a few hours and joked around. Then we actually went to bed. He didn't try anything at first which is not like him or me. We actually just laid there in the dark. He gave me a quick peck on the cheek goodnight and he had his hand on my leg and I was holding his arm. For a few minutes. Then he goes to kiss me and we make out and it gets heated and I joked "so much for no bang lol" and he immediately stopped and said "you're right. I'll be good I can be good" and I laughed and said I'm kidding get over here but he didn't budge. So finally I got on top of him and we ended up having sex. Afterwords we talked a long time and then he showed me old photos of him as a kid & he told me about the book he was reading and we ended up reading to eachother before we went to bed. It was actually really nice. Next morning we talk a bit and then we have sex but then he has me stay and we talk some more. He gave me a shirt to wear during the night and I commented how it was so comfortable I didn't want to take it off to get dressed and he said "why don't you just keep it. I want you to keep it. It's fine" so I kept it.

I know guys will sometimes say to a girl "just Come over to cuddle." But they always mean sex and it's usually in the beginning before they've had sex. A pretense to get a girl to their apt. This isn't the case with us. No pretense needed. Ever. Soooo wondering why he wanted me to stay over with no intention of sex?
Guys, Why did he not want to have sex?
Add Opinion