It's hard to say if this is dualfree but the variations I checked appear to be OK. Hard to analyze what happens when white does not start with Ng6+. White gains a tempo but black gains a choice for his knight (g6, f7) and there many things to try.
But I already know you have been quite lucky that one white attempt fails to stalemate. That luck is well deserved as all composers go through 10 occasions of bad luck for every single instance of good luck!
So this is what you escaped from: the first 4 moves the same as in your solution, then: 5. Qf2 Ke4 6. Ka3 Ke5 7. Nd2 (stalemate) Ke4 (legal if it were not stalemate) 8. Nb3 Ke5 9. Qf6+ Ke4 10. Qc2+ Nxc2#.
Here is a problem that I made awhile ago on the Matplus forums. It’s probably cooked. Good luck solving!
It’s White to selfmate themselves in 10 moves.