The main question here is: in case we don't have to wait for acks, do we want to at least wait for the master to process the cluster state and move the onAckTimeout or onAllNodesAcked to the bottom of the method, where the clusterStateProcessed call is? I would say yes, but would like to know what others think. Maybe saying timeout == 0 means I dont' care at all (it'll return acknowledged false anyway), while if `mustAck` always returns false we should care more? Not sure here.