Futurelock is a dataflow deadlock. I've seen it called datalock.
Every general purpose concurrency paradigm can model futurelock or equivalent. It's easiest to avoid in cases where dataflow is visible and static, e.g. boxes and wires. Regardless, it is much more compositional in nature than a mutex deadlock, and is relatively easy to reason.
Session types are essentially dataflow type systems and support static analysis of dataflows, including of deadlock. This is especially useful when working with dynamic or higher order dataflows, e.g. Liskov substitutions of dataflow components, avoiding dependence on a specific implementation.