Timing analysis is probably going to be the most reliable and annoying. I've heard they also detect when the window size suddenly changes, but that sounds ridiculously fragile and easy to defeat.
Difficult to imagine any anti-debugging techniques that will work against something that just records an execution trace.