Is there any way to not mark an order complete until it is back from paypal that they paid? Like when they hit "Submit Order" we get an email saying we got a new order but its not paid.
An order won't be marked as complete until it's paid
Regarding emails. You can disabled "Order placed" message template in admin area (or rename it to anything like "we got a new order but its not paid"). And then enable the "Order paid" one