hmm...
speedstep seems to kick the processortime calculus out the door

but on the other hand...
adding lot larger value to the weight evens the odds of that affecting the results.
changed also the timepenalty udf a little. now the calculation happens after the code is done, so changing cpu speed should not have that much of an effect.
Code:
function TimePenalty(optional $in, $weight)
dim $,$h
if vartype($in)
for $h=0 to 100000 next
$=ProcessorTime()
for each $h in split("1 2 3")
$h = "a" + (1 - (0.147 * $h)/27)
next
$TimePenalty=(ProcessorTime(,,$in)/ProcessorTime(,,$))/(0+$weight)
else
$TimePenalty = ProcessorTime()
endif
endfunction



[edit]
added some processor pump up code.