Waow, I did'n thought ther could be so many interesting answers.
@ Hiker, I was thinking about one AI setting per challenge, so no cheating unless you modifiy a file named "AI parameters" or something like that, which would be user-dependant. In this file, you would have something like
" TRACK "
setting 1 =
setting 2 =
...
"TRACK_END".
"TRACK 2 "
etc.
Not so hard to give the file for debugging

If the track is new, hard settings (without rubberbanding) would apply.
For the fourth level (Let's call it "diabolic level") it could be great

it would become more and more difficult, with an "infinite" challenge.
@ Bonifarz
For the values to modify and how much, I don't know at all but I'll check before may (not much time

). I refer to every variable applied only on the AI without making any cheating / rubberbanding /place-anything-not-expected-for-a-fair-play-game-here, so basicelly I think about skidding, accelerating, using nitro, not using nitro

time / triggers for using objects (immediately or later?), time before calling thunderbird for help.
Short example: A (2/2) throws a cupcake on B( 1/2), who is invunerable because he was shot by the rubberball 3 seconds before. A stays behind because he didn't waited enough, and loses. B is selected, because he was fast enough (maybe by "cutting" bends) to keep 5 seconds in advance and because A was not patient enough to send his cake on B at the right time. Every parameter is important.
The code in the link you give could be a good starting point for the possible values. (I'll try this hard AI later, thanks

)
@ E-dragon: kind of frustrating thing to see the Ai make what you cannot. Have you ever played to command & conquer (first in the serie), where the computer builds up to 4 buildings exactly at the same time, and you, poor player, can only build one? I hated it

"I do not agree with what you say, but I will fight up to death so that you have the right to say it"
- Voltaire