The Thread::sleep
need an integer not a number:
var int RunFor = (Timer01RunFor.state as Number).intValue()
What behaviour do you expect from this rule?
You will be potentially locking that thread for a long time and will run into problems
See: Why have my Rules stopped running? Why Thread::sleep is a bad idea