Don't assume tasks were generated with heading/speed entries to them.

And generally be more defensive here. This caused a problem in an upgrade
scenario. Unprocessed tasks were created without the new arguments and
the new async worker code could no longer handle them.