Unify job finish signaling
We don't need the separate isFinished() state if we guarantee to emit the finished() signal exactly once in all cases, as that needs to be handled anyway. This wasn't the case though in PendingWeatherForecast in case of a cache hit, which presumably was the reason for isFinished(). That is fixed now.
Therefore we can remove the finished state where it's unused, and deprecate it where it's still in use.