To avoid "Exited with status -1 (agent lost)" failures like this one, we should run a soft-shutdown of hetzner cloud servers before finally deleting them.
Unfortunately their API doesn't seem to support soft-shutdown+delete, so we'd have to do the second step via some webhook (e.g. buildkite's agent.stopped) or via a timer (short enough for heroku to not shutdown the instance).
Also might require some tweaking of the agent's stop_timeout and the agent_shutdown_check.timer.