After metrics implementation we have a Unsent property to determine whether a request was sent or not when an error occurs. We can consider retrying on the next host immediately if this happens.
Note: we should make sure that this property is only set when we are 100% sure the request wasn't sent. For the metrics implementation a bug in this property is not critical so it wasn't tested very thorougly.
See this behavior on the java driver https://github.com/datastax/java-driver/blob/53294a5c7efcd8afa14c7ef93b51e6467c8626ab/core/src/main/java/com/datastax/oss/driver/internal/core/cql/CqlRequestHandler.java#L518