One of the biggest pitfalls is the use of concurrency in the first place. Concurrency adds a substantial design/debugging overhead, so you really have to examine the problem and see if it really calls for concurrency.
Concurrency is certainly unavoidable in some domains, but when it is avoidable, avoid it.