Expire tasks by end time

Builds on #535. Tasks are returned to master if they do not finish execution by a given end time. The use case is authentication files (such as chirp tickets) that expire after a given time. With this changes, it is possible to easily detect whether an expiration time has been reached.