I liked the presentation. There really isn't much treatment out there of best practices for concurrency testing.
Functional programming will eliminate some sources of concurrency errors if there isn't shared mutable state. However, you'll still have plenty of ordering violations in message passing. Any time you need to gather the results of multiple computations you're going to have concurrency errors of some form or another.
Check out Jinx, PetraVM's offering that helps deal with these problems. It's a tool that forces concurrency errors in parallel software to occur quickly. It's pretty complementary to most of the technologies and approaches detailed in this presentation.