Я не мог понять вашу проблему, посмотрев на код, поэтому не могу ответить на реальный вопрос.
Но я подумал указать, что вы никогда не должны имитировать будущее, "спя" в потоке .
Вы можете создать неблокирующее будущее, используя следующее,
import java.util.{Timer, TimerTask}
import scala.concurrent.{Future, Promise}
import scala.concurrent.duration.Duration
import scala.util.Try
object FutureUtils {
val timer = new Timer();
def createDelayedFuture[T](delayInMills: Long, creator: () => T): Future[T] = {
val promise = Promise[T]()
timer.schedule(
new TimerTask {
override def run(): Unit = promise.complete(Try(creator()))
},
delayInMills
)
promise.future
}
}