Find the amount of variation due to another covariate

I'm trying to explain a binary outcome (cardiovascular disease) with a categorical predictor (gene level, coded as 0, 1, or 2 depending on the number of risk alleles present). I'm trying to determine if the effect of the gene on cardiovascular disease is due to its known effect on an additional continuous covariate (blood glucose level), or whether it has a separate mechanism of action on cardiovascular disease. I'm not trying to find that other method of action, just to see if the effect of the gene on cardiovascular disease is due to its known effect on blood glucose, or whether it is independent of this. How, in your opinions, would one go about this? I'm trying to find some new tests that I haven't heard of before.

Here's what I've done/thought of:

1. I've included an interaction term in the model to test whether the the expression of the gene is modified by the covariate. I got a significant P for the interaction term, so I know that the effect of the gene on the response is modified by the covariate.

2. I've looked at the Nagelkerke's pseudo R2 for a model with only the gene, only the covariate, and both of them together. I've found that the R2 of the combined models is less than the sum of the individual models (only by about 0.9%). From this I thought that since the gene explained ~ 2% of variation alone, but only added an additional ~1.1% of variation when taked onto the covariate only model, that part of the explained variance of the gene is actually due to its effect on the covariate. i.e. R2Gene only = ~0.02; R2Covariate only = ~0.2; R2Gene and coariate = ~0.211. So alone it explained ~ 2% variation, but when the covariate was included in the model, it only added 1.1% of variation. Is it legitimate to say that some portion of the variation explained by the gene is actually due to the variation in covariate?

So my question is: a) are these things that I've done kosher, and b) how would I go about finding whether the variation explained by the gene is actually explained by the gene's effect on a covariate.

Thank you for your time, any and all opinions are valuable and helpful.