Simplify Abort behaviour in runner
At [runner.py line 315](https://code.kodo.org.uk/kilter/kilter.service/-/blob/main/kilter/service/runner.py#L315) there is a check for the loop ending condition *before* handling cleanup after receiving `Abort`. This *may* result in channels not being closed correctly, but mostly it is over-complicating the code. The handling of `Abort` should: - always be run - **not** send a response on the channel - close the channel - return The `abort()` method must also **not** await a response from the channel.
issue