Easiest way to find an answer is to ask him.
A) He could feel this moving to fast. You say a third date but have you met him in person before? Emails and calls do not count as dates.
And why would he sleep over on a third date? You barely know him. If you knew him well enough, you'd just ask him why.
B) He could have met someone in the face to face world. And he's keeping you as a back up.
C) He could be a liar and be married or involved.
D) He could have social anxiety disorder.
E) If you haven't met face to face, he could have fibbed on his looks.
There's no way to know without asking hm.