Waits for the simulation to reach a given status.
the current simulation status
the Status the simulation should reach before returning
the maximum time to wait
the TimeUnit defining the timeout