One can obtain a little more in Geoff's situation, where $O_p(G) > 1$. Write $U = O_p(G)$ and $U_i = U \cap H_i$, so $U_i = O_p(H_i)$, as Geoff showed. In particular, $|U_1| = |U_2|$. Note that the $U_i$ are proper in $U$. I claim that $U = U_1U_2$. First, observe that $U_1 \triangleleft G$ since $N_H(U_1)$ contains $H_1$ properly because $N_U(U_1) > U_1$. Since $H_1$ is maximal, $U_1 \triangleleft G$, as claimed. Next, $U/U_1$ is $G$-chief by the maximality of $H_1$, and in particular, $U/U_1$ is abelian. Since $G = UH_2$, it follows that $H_2$ acts irreducibly on $U/U_1$. Now $H_2$ normalizes $U_2$, so it normalizes $U_1U_2$. Since $U_1 \subseteq U_1U_2 \subseteq U$, we have either $U_1U_2 = U_1$ or $U_1U_2 = U$. Since $|U_1| = |U_2|$, the first possibility yields $U_1 = U_2$, and this is a normal subgroup invariant under an isomorphism from $H_1$ to $H_2$, so we have that the $U_i$ are trivial in this case, and $U$ is minimal normal in $G$. Since $G = UH_2$, this implies that $H_2$ is maximal, contrary to assumption. We thus have $U_1U_2 = U$, as claimed. In particular, this yields $G = H_1H_2$. But where do we go from there?