React version: 0.0.0-f77c7b9d7
Browser: Chrome Version 84.0.4147.105 (Official Build) (64-bit)
OS: Ubuntu 18.04.4 LTS

## Steps To Reproduce

1. move mouse over button

Link to code example:

https://codesandbox.io/s/mouseenter-in-reactnext-ibld3?file=/src/Demo.js

## The current behavior

`onMouseEnter` fires twice (sometimes it doesn't).

![video capture of repro steps](https://i.ibb.co/XzdQF68/react-next-mouseenter-twice.gif)

## The expected behavior

It fires only once. Same repro with `react@16.13.1`: https://codesandbox.io/s/mouseenter-in-react16131-9sr7b?file=/src/Demo.js

<div>{ReactDOM.createPortal(<div>portal</div>, portalContainer)}</div>,
      container,
    );
    expect(portalContainer.innerHTML).toBe('<div>portal</div>');
    expect(container.innerHTML).toBe('<div></div>');
    ReactDOM.unmountComponentAtNode(container);
    expect(portalContainer.innerHTML).toBe('');
    expect(container.innerHTML).toBe('');
  });
  
  if (!__EXPERIMENTAL__) {
    it('should support unstable_createPortal alias', () => {
      const portalContainer = document.createElement('div');
      expect(() =>
        ReactDOM.render(
          <div>
            {ReactDOM.unstable_createPortal(<div>portal</div>, portalContainer)}
          </div>,
          container,
        ),
      ).toWarnDev(
        'The ReactDOM.unstable_createPortal() alias has been deprecated, ' +
          'and will be removed in React 18+. Update your code to use ' +
          'ReactDOM.createPortal() instead. It has the exact same API, ' +
          'but without the "unstable_" prefix.',
        {withoutStack: true},
      );
      expect(portalContainer.innerHTML).toBe('<div>portal</div>');
      expect(container.innerHTML).toBe('<div></div>');
      ReactDOM.unmountComponentAtNode(container);