Interesting subject. The PIR based project seem a good start, I don't think a CO2 sensor could give you any valuable information, I don't see what sleep related element you could measure with it ?
Motion sensor is not necessarily a better solution as you could move your legs and not your arms for example. But if you want to go this way program using a nrf51822 or nrf52832 and not arduino, so you can use a cheap fitness tracking watch using those sensors and available on ebay/aliexpress etc.
You can have a look at this solution using PIR, not all pages are available without paying for the full book, but the most important are including the methodology used and the arduino code on page 521
https://books.google.com.vn/books?id=aDysDAAAQBAJ&pg=PA514&lpg=PA514&dq=arduino+Hypnagogia+detection&source=bl&ots=sImWOf6rqf&sig=224GXZTxhpbckb8_DO1zYR_bpFE&hl=fr&sa=X&redir_esc=y#v=onepage&q=arduino Hypnagogia detection&f=false