This is taking a long time to run because of 1) numerical integration and 2) you forgot to add the ProjWData(*dataxy) argument to your plotOn commands.
Adding the ProjWData is trivial, but the numerical integration is a bit more specific. Since your Gaussian is conditional on sigma which depends on an observable from the data via some RooFormulaVar, RooFit will do a numeric integration for each event to normalize the Gaussian.
The problem with RooGaussian in your application is that it doesn’t normalize itself to save computation time. But if the normalization factor is different for every event because it’s a conditional fit, this optimization is not meaningful anymore. What I would do is to implement a little self-normalized Gaussian class for this fit to avoid integrals altogether.
The problem reported in that other post was about making the RooProdPdf work with a RooPolyVar, so I only focused on that issue and didn’t make any further comments. But yes, now that I try to run it I agree with you: that fit would also benefit from some patching to avoid the numerical integrals.
You on the other hand asked more specifically why your script runs so slow, so I took a deeper look.
If you have further questions, please let me know!