Problem/Motivation
The '.messages--error' selector doesn't actually appear, but this is obscured by the fact $this->assertSession()->waitForElement doesn't assert the element actually appears.
Proposed resolution
switch to '[aria-label="Error message"]'
and wrap the assertion in $this->assertNotEmpty().