Also let me clarify a bit what I mean by the mouse is laggy.
In both eeschema and pcbnew, there are two pointers. There's the system mouse pointer, and below that are cross-hairs that move with the pointer but snap to the grid below. When I say the mouse lags, I'm referring to the cross-hairs only. The system pointer is fine, it moves like normal and there's no visible lag or other problems. The issue is the cross-hairs lag behind the pointer. It's not jumpy or erratic, it's just slow.
It's as if whenever the mouse moves, the system pointer is filling up a buffer at 100 Hz, and kicad is pulling the positions out of that buffer at 50 Hz to update the cross-hair location. It eventually gets to the new location of the pointer, but it moves at half the speed and takes twice as long to get there. If you spin the mouse in circles for two seconds and then stop, the cross-hairs continue circling for an additional two seconds until they finally catch up to the final location of the pointer. And this issue is not present at all when running the same guest OS in VMWare (but VMWare has its own problems described above).