I would use ethernet rather than USB, as it's much more immune to noise issues than USB controllers.
There are a ton of controllers that work with Mach3. There are far fewer that work with Mach4.
While there are some that work with both, most Mach3 controllers don't work with Mach4, and some Mach4 controllers do not work with Mach3.
Also, keep in mind that there's no guarantee that Mach3 will work with future versions of Windows 10.
For that reason alone, I'd recommend Mach4 over Mach3.
For Mach4, look at Vital Systems, ESS, Pokeys, and PMDX.