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

beforeEach(() => {
    container = document.createElement('div');
    document.body.appendChild(container);
  });
  afterEach(() => {
    document.body.removeChild(container);
    container = null;
  });
  it('should render strings as children', () => {
    const Box = ({value}) => <div>{value}</div>;
    ReactDOM.render(<Box value="foo" />, container);
    expect(container.textContent).toEqual('foo');
  });
  it('should render numbers as children', () => {
    const Box = ({value}) => <div>{value}</div>;
    ReactDOM.render(<Box value={10} />, container);
    expect(container.textContent).toEqual('10');
  });
  it('should be called a callback argument', () => {
    
    let called = false;
    ReactDOM.render(<div>Foo</div>, container, () => (called = true));
    expect(called).toEqual(true);
    
    called = false;
    ReactDOM.render(<div>Foo</div>, container, () => (called = true));
    expect(called).toEqual(true);
  });
  it('should call a callback argument when the same element is re-rendered', () => {
    class Foo extends React.Component {