Wait steps don't solve race conditions, they only make them less likely (and under load they'll happen regardless).
Triggering on Data Value Changes is the way to ensure execution order.