Um. "Emulation". You guys are using that word in ways that it probably doesn't mean to be used.
Say that one has two CPUs, an old one and a newer one of the same general type. The newer one can do everything the old one can do, possibly with an additional step or two in the microcode, but the newer one would have additional capabilities.
With the right compiler flags set, the same code base, designed for the older CPU, can be run on the newer CPU sans problem or, depending upon just how the low-level instructions are set up, with no degradation is speed.
It gets to be even more fun: Say that the newer CPU is actually faster on individual instructions or something. But also state that the code base has a timer set that interrupts whatever CPU we're talking about and has it dump the results of some calculations; then we start up again with more calculations and another dump. The time it takes to do the calculations may be faster on the newer CPU - but, if one stops and waits for the timer to trigger the interrupt before continuing, there will be no difference in speed from an outside view between the newer and older CPU.
With this kind of setup, an engineer will say that the newer CPU is "emulating" the older CPU: Same top level code, possibly slightly different assembly/microcode, but the same results.
Now, there's another use of the word, "emulation" that one runs into from time to time. Say that one has a x86 CPU. It's perfectly possible to have, with the right compiler, to take source code for, I dunno, a Motorola 68000 CPU and generate 68000 assembly language, all on that x86 CPU. (Read: Cross-compilers.)
One can then take that 68000 assembly language and feed it into an emulator that steps, one 68000 instruction at a time, through the code. The emulator is a program that, somewhere down in the basement level, is actually executing x86 assembly language. Fun. With the right kind of GUI, one can watch 68000 CPU registers being loaded with values, memory space being modified, and code being executed right along, great for debugging.
But run the Sieve of Eratosthenes on the code loaded into this 68000 emulator and it will be much, much, much slower than running it on native 68000 hardware.
Usually, but not always, when people are talking about the "new" vs. "older" CPU above, the word, "compatibility" mode will sometimes get bandied about. But the term, "compatibility mode" is usually reserved for flipping an actual hardware bit that changes the operation of the underlying hardware in some way.
So: Given Elon's usage of the term, "emulation", I think he's talking about a more capable CPU that (most likely) isn't using an expanded instruction set or (somewhat less likely) has some small libraries of assembly that convert older instructions into newer ones.
And, in either case, isn't some massively slowed down emulation system running on some completely different hardware.