I uploaded a rough draft of the code to the lab site at k3. Here is a direct link to the zip:http://webzone.k3.mah.se/projects/lab/Folder/index.aspx?page=6&tab=12&file=81&function=folder&id=9
There are some things worth telling you though:
1. I havn't considered the "overflow" in the millis() method, so it will probably stop working after about 9 hours
2. You can't have your own loop() method, see tab 2 (Taskmanager) for more on that!!! Just use the attachTask(int, void, long), detachTask(int) and changeTimeout(int) to control the different callbacks.
...probably some other issues...
How to use:
1. Write your variables and methods
2. use attachTask(index, callback method, timeout) in the setup
3. use detachTask(index) and changeTimeout(timeout) to alter your callbacks
(I have tried changing and detaching tasks from other tasks and it works fine, you can start a callback and have another callback ending it after a certain amount of time...)
Good luck! Hope it will be useful!