The short answer is probably "yes" to all of that, but the only way to "be sure you're understanding things" is to read the RFC on the subject. For example, whether
async is "sugar only" kinda depends on exactly what you mean by "
async" and "sugar", since it does affect borrow checking and in some sense was bundled with the
std::futures machinery and a generators feature that's still unstable. But in general, anything else I could say here would just be copy-pasting text from that RFC.
Feel free to start a new thread if you have additional questions after reading the RFC.
Depends on what "real spec" means. If we're talking a formal ISO specification document like C++, probably not. If we're talking an officially endorsed exhaustive and normative description of Rust semantics, then absolutely yes. The Grammar working group is yet another project tackling a piece of this spec work.