Creating of a delay in rules

No. If you don’t cancel them they will run. Sometimes circumstances changed and you don’t want it to run any more. In that case you cancel the timer. For example, if you look at Generic Presence Detection, it sets a Timer to wait before setting the main presence proxy Item to OFF after all the sensors go to OFF. If someone returns before the Timer goes off, we no longer want to set the presence proxy Item to OFF so we cancel the Timer.

The limited number of execution threads is why you should use Timers instead of Thread::sleep to wait for something to occur. Timers don’t consume an execution thread but Thread::sleep will stop a Rule from exiting so it will continue to consume a thread.

There is no practical difference in terms of consuming a Rule execution thread between using the Expire binding and using a Rule Timer.