Yeah, this is a longstanding issue with Nova error handling. The more noise people make about it the more likely it is to get attention (and hopefully fixed!).
The missing hostname check is going to be tricky. It's implemented as a simple string replacement in the templates, which doesn't allow us to do any sort of logic to check that the hostname actually exists. You can certainly open an RFE for that too though.