Fix logic error in #hasAvailableSlot()
Add 'run' task and document custom tasks