Wait for expression evaluates the expression at the time the action is reached. If true, it continues; otherwise, it effectively waits for an event that would make the condition true.
Wait for event waits for the specified event, regardless of any current states (e.g., if you're waiting for motion active and the sensor is currently active, you'll need a subsequent "active" event).