Make out of order messages work.

Don't update elapsed time after task completion if no started message
was ever received. Complete any remaining outputs if a succeeded message
comes in. This closes #351.