register
Add the provided task to this Scheduler and assigns an ID. This is the second phase of registration, the first phase being ITask.register.
Users: do not call directly. Instead, use add to add a task.
For implementers of Scheduler:
Do not call ITask.register in implementations; this will cause an infinite loop!
Return
the task's ID number in context.