Minicomputer emulation (PDP-11) ... which no one cares about, but anyway it's all bits and bytes and condition flags and needs maximum speed, so assembly is a natural fit (but that's just an excuse -- assembly is awesome!). Yes it does just fine on modern hardware -- I always say, for whatever reason, hardware guys are *much* better than software guys at backward compatibility. Stuff written for 10-year-old OS versions often has problems on the latest flavor, but 1980s x86 code that touches the 83-key keyboard controller and CGA directly works just fine today with an enhanced USB keyboard and PCIe graphics card. Even the self-booting version of my stuff still works (although I'm sure UEFI will become unavoidable very soon -- but thumb drives and CDs still boot the old way). Newer WLINKs can write ELF executables, which is nice (although it'd be even nicer if imports worked).
DOS is the best place to *run* this kind of code too, since it needs to be tied pretty closely to some of the hardware (especially bus adapters for antique peripherals that must be preserved). Linux changes its driver model every 15 minutes so it's a struggle every time someone wants to install my drivers there, but the ones on DOS are inside the application and just talk to the PCI BIOS at startup and then reach out and grope the hardware directly, which has worked great for years and years. The interrupt response time is fantastic, obviously.