I do some coding in x86 ASM. but I'm not a pure ASM programmer, since I'm too tire to do that. mostly I do C and when I need the speed, I'll do the core in assembly. Plus with assembly you can do a lot of tricks (but better watch out what you are doing). and with assembly language and good knowledge of the CPU/platform you are running, you can run very fast routine on it. Prime95 is a highly optimized program to run FFT on prime numbers. Some good emulators are using assembly core as well. and of course, good drivers need ASM (but a lot of people are lazy nowadays). Something I really want to do is a fractal compression system.. (that's way out of my league though... )
and WINDOWS IS NOT CODED WITH A LOT OF ASSEMBLY. If it is, you wouldn't see such a bloated OS... try QNX if you want to see what can be done in ASM with a OS. MS-DOS is probably coded primarily with ASM though.
as for Pay, I have no idea, but if you are as good as one of those demo/intro scene coders, you should be able to find jobs in the industry with no problem at all.