Is there an academic account on Rust concurrency along the lines of shared memory vs message passing, and semantics?
There hasn't been a ton of academic work, generally, but Rust doesn't really do a whole lot that's special in this domain. You still have the shared memory vs message passing dichotomy, you can do either one. The interaction of these concepts with ownership is the novel bit.
I see, but is this written down somewhere other than the source code for the concurrency crate?
I'm not sure specifically what you're asking for, sorry. Do you mean a general overview of how concurrency and Rust work? Fearless Concurrency with Rust | Rust Blog is one such example, but each bit of the standard library (should, modulo me having the time to write them) has the bits that pertain to them.