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

expect(container.firstChild).toBe(null);
  });
  let svgEls, htmlEls, mathEls;
  const expectSVG = {ref: el => svgEls.push(el)};
  const expectHTML = {ref: el => htmlEls.push(el)};
  const expectMath = {ref: el => mathEls.push(el)};
  const usePortal = function(tree) {
    return ReactDOM.createPortal(tree, document.createElement('div'));
  };
  const assertNamespacesMatch = function(tree) {
    const testContainer = document.createElement('div');
    svgEls = [];
    htmlEls = [];
    mathEls = [];
    ReactDOM.render(tree, testContainer);
    svgEls.forEach(el => {
      expect(el.namespaceURI).toBe('http://www.w3.org/2000/svg');
    });
    htmlEls.forEach(el => {
      expect(el.namespaceURI).toBe('http://www.w3.org/1999/xhtml');
    });
    mathEls.forEach(el => {
      expect(el.namespaceURI).toBe('http://www.w3.org/1998/Math/MathML');
    });
    ReactDOM.unmountComponentAtNode(testContainer);
    expect(testContainer.innerHTML).toBe('');
  };
  it('should render one portal', () => {
    const portalContainer = document.createElement('div');
    ReactDOM.render(