The thing with that is there isn't anything that can "kill" one of the programs, except if it does something stupid and segfaults. So once one learns to reproduce you just end up spawning thousands of programs that compete for processing power and memory, but otherwise can't interact in any way (the OS makes sure of that). So just a heads up that this will probably be less cool than it sounds.
But yeah, I think you'll want to use CIL. That way you get the benefit of the .NET library, and things are at least sort of sanitized against seg faults and the like.