I've found the answer for my second question: "If you use the EAD, you may be considered to have abandoned your H-1B status, and will be considered in I-485 pending status." (http://www.hooyou.com/news/news062607faq.html)
I can apply for an EAD and not use it until either my I-140 is approved (in which case I'll be safe to use it) or my H1b is expired (in which case I'll have to use it).