Ho scritto un paio di librerie che aiutano a gestire processi in "background". Per background non intendo un multitasking effettivo come quello dei PC desktop ma in modo indipendente dall'utente.
Queste librerie sono schedulatori che possono eseguire delle funzioni predefinite ad intervalli regolari oppure dopo un periodo determinato dall'utente (nel tuo esempio, accendere la luce e poi spengerla dopo X secondi).
Si chiamano looper e leOS: il primo è un semplice schedulatore software, che è legato all'esecuzione del loop principale, il secondo si basa sui timer interni ed opera in maniera del tutto indipendente dal loop.