delay_or_fail breaks on `fail`

Well, that's not very useful.

With https://github.com/PolicyStat/jobtastic/commit/a0888671fbc730106da862c6883d0db8d86920c5 we removed the code that generated a task_id and then properly stored it. Now, there's not going to be a `task_id` to rely on if there's actually a failure. This would have definitely benefited from a test, so hooray new test suite.

Will probably have to duplicate some of what `TaskMeta` did using pure celery stuff.