I am not sure if this helps, but I just found that you can actually use the contracted epsilon identity to get a pretty good vector/dyadic representation of the chain rule. The nice thing about this particular identity (at least to me) is that it does what any good chain rule should do, and applies the operator in question to the argument.
Please allow me to preempt this by saying that I am not that familiar with the conventions of dyadic notation, but I will present what I have figured out in index notation form, so that if anyone wants to go in, and fix my notation, they will know how to. Anyway, here is what I found:
\begin{equation}
\nabla \times \left(\mathbf{A} \circ \mathbf{B}\right) = -\left(\nabla_\mathbf{B}\cdot \mathbf{A}\right)\left(\nabla\times \mathbf{B}\right) + \left(\frac{\partial \mathbf{A}}{\partial \mathbf{B}}\right)^T\left(\nabla \times \mathbf{B}\right) + \left(\frac{\partial \mathbf{A}}{\partial \mathbf{B}}\right)^T \!\!\!\begin{array}{c}
_\cdot \\
^\times\end{array}\!\!\!\left(\nabla \mathbf{B}^T\right)
\end{equation}
The vertical operator notation means that I am crossing the second index of the left tensor with the 1st index of the right tensor, and then contracting the 1st index of the left tensor with the 2nd index of the right tensor.
Working it out in index notation, we start with
\begin{equation}
\epsilon_{ijk}\frac{\partial A_j}{\partial B_l}\frac{\partial B_l}{\partial X_k}
\end{equation}
What we want is to have the levi-civita symbol apply to B. The first step for this is to "free" the l and k indices. We can do this, using the kronecker delta
\begin{equation}
\epsilon_{ijk}\frac{\partial A_j}{\partial B_l}\frac{\partial B_l}{\partial X_k} = \delta_{k_0k_1}\delta_{l_0l_1}\epsilon_{ijk_0}\frac{\partial A_j}{\partial B_{l_0}}\frac{\partial B_{l_1}}{\partial X_{k_1}}
\end{equation}
Now, we can get to the contracted epsilon identity by adding appropriate cancelling terms to the RHS:
\begin{equation}
\left(\delta_{k_0k_1}\delta_{l_0l_1}\epsilon_{ijk_0}\frac{\partial A_j}{\partial B_{l_0}}\frac{\partial B_{l_1}}{\partial X_{k_1}} - \delta_{k_0l_1}\delta_{l_0k_1}\epsilon_{ijk_0}\frac{\partial A_j}{\partial B_{l_0}}\frac{\partial B_{l_1}}{\partial X_{k_1}}\right) + \delta_{k_0l_1}\delta_{l_0k_1}\epsilon_{ijk_0}\frac{\partial A_j}{\partial B_{l_0}}\frac{\partial B_{l_1}}{\partial X_{k_1}}
\end{equation}
We can then use the contracted epsilon identity to rewrite this as
\begin{equation}
\epsilon_{rk_0l_0}\epsilon_{rk_1l_1}\epsilon_{ijk_0}\frac{\partial A_j}{\partial B_{l_0}}\frac{\partial B_{l_1}}{\partial X_{k_1}} + \delta_{k_0l_1}\delta_{l_0k_1}\epsilon_{ijk_0}\frac{\partial A_j}{\partial B_{l_0}}\frac{\partial B_{l_1}}{\partial X_{k_1}}
\end{equation}
Now, we are halfway there, for $\epsilon_{rk_1l_1}$ applies to $\frac{\partial B_{l_1}}{\partial X_{k_1}}$
Notice also, that when we juxtapose $\epsilon_{rk_0l_0}$ and $\epsilon_{ijk_0}$ we can apply the contracted epsilon identity once again. Combining these two facts gives us
\begin{equation}
\left(-\delta_{ri}\delta_{l_0j} + \delta_{rj}\delta_{l_0i}\right)\frac{\partial A_j}{\partial B_{l_0}}\epsilon_{rk_1l_1}\frac{\partial B_{l_1}}{\partial X_{k_1}} + \delta_{k_0l_1}\delta_{l_0k_1}\epsilon_{ijk_0}\frac{\partial A_j}{\partial B_{l_0}}\frac{\partial B_{l_1}}{\partial X_{k_1}}
\end{equation}
The expression in vector/dyadic notation above follows directly from this.
Let $e_1,e_2,\dots,e_b$ denote the canonical basis of $\Bbb R^b$. We compute
$$
\begin{align*}
\operatorname{vec}(A \operatorname{diag}(b) C) &=
\operatorname{vec}\left(A \left[\sum_{i=1}^b b_i e_ie_i^T\right] C\right)
\\ & =
\operatorname{vec}\left(\sum_{i=1}^b b_i (Ae_i)(C^Te_i)^T\right)
\\ & =
\sum_{i=1}^b b_i \,(C^Te_i) \otimes (Ae_i)
\\ & =
\pmatrix{(C^Te_1) \otimes (Ae_1) & \cdots & (C^Te_b) \otimes (Ae_b)} \pmatrix{b_1\\ \vdots \\ b_b}
\end{align*}
$$
(as you did, I have used $b$ to indicate both the diagonal vector of $B$ and the size of $B$).
It then suffices to rewrite the matrix on the left as
$$
\pmatrix{(C^Te_1) \otimes (Ae_1) & \cdots & (C^Te_b) \otimes (Ae_b)} =
\Big((C^T\otimes 1_a)\odot(1_c\otimes A)\Big)
$$
One way to do so is to write
$$
\pmatrix{(C^Te_1) \otimes (Ae_1) & \cdots & (C^Te_b) \otimes (Ae_b)} =\\
\pmatrix{\operatorname{vec}([Ae_1][C^Te_1]^T) & \cdots & \operatorname{vec}([Ae_b][C^Te_b]^T)}
$$
and from there, apply your Hadamard formula to each column to see that the $i$th column is indeed $((C^Te_i) \otimes 1_a) \odot (1_c \otimes (Ae_i))$, so that the matrix on the left is indeed $(C^T\otimes 1_a1_b^T)\odot(1_c1_b^T\otimes A)$.
Another approach: it suffices to check that
$$
\Big((C^T\otimes 1_a1_b^T)\odot(1_c1_b^T\otimes A)\Big)\,{\rm vec}(e_ie_i^T) =
((C^Te_i) \otimes 1_a) \odot (1_c \otimes (Ae_i))
$$
Since we have
$$
\Big((C^T\otimes 1_a1_b^T)\odot(1_c1_b^T\otimes A)\Big)\,{\rm vec}(B) =
\sum_{i=1}^b b_i\,\Big((C^T\otimes 1_a1_b^T)\odot(1_c1_b^T\otimes A)\Big){\rm vec}(e_ie_i^T)
$$
Regarding the end of my first approach: I meant that we could use your last formula to note that
$$
\operatorname{vec}([Ae_k][C^Te_k]^T) = \operatorname{vec}([Ae_k]_{a \times 1}\,[1]_{1 \times 1}\,[C^Te_k]^T_{1 \times c}) =\\
\Big(([C^Te_k]\otimes 1_a1_1^T)\odot(1_c1_1^T\otimes [Ae_k])\Big)\,{\rm vec}([1]_{1 \times 1}) = \\
([C^Te_k] \otimes 1_a) \odot (1_c \otimes [Ae_k])
$$
Best Answer
For consistency and typing convenience, define the following variables $$\eqalign{ m &= tr,\quad n = trp \\ \beta &= b,\quad\; \delta = d_{safe} \\ z_0 &= z_{ref} \\ Q &= (I_m\otimes {\tt1}_p) \\ x &= (Mz\otimes{\tt1}_r - {\tt1}_t\otimes y) \\ X &= {\rm Diag}(x) \\ w &= Q^T(I_n\odot x{\tt1}_n^T) -\delta{\tt1}_m \;\doteq\; (-\psi) \\ s &= \left(\frac{{\tt1}}{w}\right) \quad\implies\quad s\odot w = {\tt1}_m \\ }$$ From a previous question we know that $$\eqalign{ dw &= 2Q^TXQM\,dz\\ d\log(w) &= s\odot dw \\ &= 2s\odot Q^TXQM\,dz \\ }$$ Write the current function in terms of these new variable. Then calculate its gradient. $$\eqalign{ {\cal L} &= H:(z-z_0)(z-z_0)^T + \frac{\rho}{2}(Az-h):(Az-h) -\beta{\tt1}_m:\log(w) \\ d{\cal L} &= \left(H+H^T\right)(z-z_0):dz + \rho(Az-h):A\,dz - \beta{\tt1}:(2s\odot Q^TXQM\,dz)\\ &= \left(H+H^T\right)(z-z_0):dz + \rho(Az-h):A\,dz -2\beta s:Q^TXQM\,dz \\ &= \Big[\left(H+H^T\right)(z-z_0) + \rho A^T(Az-h) -2\beta M^TQ^TXQs\Big]:dz \\ \frac{\partial{\cal L}}{\partial z} &= \left(H+H^T\right)(z-z_0) + \rho A^T(Az-h) -2\beta M^TQ^TXQs \\ \\ }$$
In the above derivation, a colon is used to denote the trace/Frobenius product, i.e. $$\eqalign{ A:B &= {\rm Tr}(A^TB) = {\rm Tr}(AB^T) = B:A \\ }$$ The cyclic property of the trace allows products to be rearranged in various ways, e.g. $$A:BC \;=\; AC^T:B \;=\; B^TA:C \;=\; A^T:(BC)^T$$ In addition, the Frobenius and Hadamard products commute with each other. $$A:B\odot C = A\odot B:C$$