title: Same `queryByText()` statement for the second time fails
body: <p>Why calling the same <code>queryByText</code> for the second time gives <code>null</code> even there is no action or state changes between those calls?</p>
  <pre class="lang-js prettyprint-override"><code>it('should ...', async () =&gt; {
      ...
      userEvent.upload(fileInput, file);
      await waitFor(() =&gt; expect(screen.queryByText('Import')).not.toBeDisabled());
      userEvent.click(screen.queryByText('Import')); // &lt;- fails here cause the same as above queryByText returns null
      // Type 'null' is not assignable to type 'TargetElement'
      ...
  });
  </code></pre>
  <p>If I put <code>screen.debug()</code> after <code>await waitFor</code>, it says the button is definitely there:</p>
  <p><a href="https://i.stack.imgur.com/4atus.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/4atus.png" alt="screen.debug()" /></a></p>