Buildkite is not well suited to preemptible instances because even with a spot termination script to shut down the agent, you usually only have 30 seconds to do that and since most builds take longer than 30 seconds you won’t be able to wait and will incur false negative build failures.
See this ticket I’ve just raised which would make BuildKite more suitable for use with pre-emptible instances: