execute() w/ timeout will await the start of execution before calling
future.get(timeout) to reduce thread scheduling issues