Is it correct to response to HEAD req from elastic API with empty "transfer-encoding: chunked"?

No, that's not the case. HEAD requests are special in this regard. See e.g. RFC 9112 §6.3:

  1. Any response to a HEAD request [...] is always terminated by the first empty line after the header fields, regardless of the header fields present in the message, [...]