Negating the risk of a random 64-bit nonce
Without looking at the code I would say your construction is pretty much the same as XChaCha20:

From https://download.libsodium.org/doc/advanced/xchacha20.html


  Internally, XChaCha20 works like a block cipher used in counter mode.
  It uses the HChaCha20 hash function to derive a subkey and a subnonce
  from the original key and extended nonce, and a dedicated 64-bit block
  counter to avoid incrementing the nonce after each block.


(emphasis mine)

I'm not sure if this HChaCha20 hash function has any specific properties but using HKDF is probably just fine.

Here is the paper on XSalsa20. It should be possible to adapt the security proof.