The big problem is, as noted above, that PS2 emulation requires a ton of raw processing power. The PS2, at this point, is an over decade old console... modern GPUs can handle the tasks of the PS2 era with relative ease... but the problem is that those calls have to all be translated from MIPS to x86 code and run in real time. Real time is the true problem... If no one wanted to play PS2 games on PC as if they were running on a real console, emulation wouldn't be nearly as difficult... but if you don't do it in real time, it kind of makes games unplayable
Essentially, your CPU has to translate and run code for the PS2 EE (emotion engine) CPU, 2 Vector Units, and one graphics synthesizer. Worse yet, all of those different components have to run in a precise timing order, or everything falls apart. That's not even counting all of the other little components that make up a PS2 as well... everything has to be precise, or nothing works... Your CPU essentially has to "start" and "stop". Stopping to allow for slower or harder to emulate segments of the emulator to work and catch up before it can move on to the next bit (this is why EE, VU, and GS threads almost always have wildly different %'s).
Imagine, if you will, that a PS2 was an old fashion clock with a lot of gears. You can use your PC to come up with the time completely digitally, and therefore come up with the same results on both, just wildly different ways to get there. In this case, we can't tell proper time (emulation) without the computer not just coming up with the same answer, but also going about it in the exact same way (so you aren't just calculating time, you're also calculating how each individual gear in the clock works to make said time)
*mumble rants elsewhere now*