по поводу rust: есть асинхронный tokio::sync::Mutex, но в документации к этому асинхронному Mutex написано " it is ok and often preferred to use the ordinary Mutex from the standard library in asynchronous code"
Да, я не прав. Это зависит от реализации асинка. Tokio для многопоточного рантайма использует work-stealing thread pool. Если один поток заблокировался, то другие возьмут на себя обработку готовых к выполнению футур. В .NET для асинка тоже могут использоваться разные контексты синхронизации. Некоторые используют один поток выполнения. Нужно смотреть что используется в unity