So first, my experience is with a Canon iPF6400, so there is certainly a huge difference here. I know I can also run the adjustment, but it seems like this will not be dependent on paper type, and i don't want to mess with this for my satin paper. It seems like this same adjustment is used to dial in either banding or feed amount, so if you see banding, I guess it feeds ever so slightly less to eliminate the banding, and so if I adjust the feed for the length to make it longer, it might actually create banding. So far, I have just stuck with stretching the image.
Anyway, I don't have a solution unfortunately, but I did want to say that based on what I read and my own experiences, I really don't think its shrinkage. I know that a canvas which is made from at least 50% cotton will shrink, which is a great trick to tighten it up once stretched if you spray the back with water, but I just don't think that the amount of ink that is used can affect it. I mean given a typical 24x36 canvas, there is only about 6 or 7ml of ink used, which is spread out over the whole canvas! Imagine how much water you need to put on the back to shrink it! Plus, the solvent in the ink, meaning the water for aqueous inks, pretty much evaporates right away. So I really don't think its shrinkage from ink as the canvas is barely ever "wet".
So in my opinion, its only that feed adjustment that has an affect. I'm not exactly sure how the printer measures this, but I think its the textrure of the canvas that fools it ever so slightly. I'm not sure if textured paper has this same problem, but at the same time, textured paper is much stiffer, whereas canvas can bunch up or be microscopically compressed if that makes any sense. Also, I have seen a difference when using different canvases (Epson vs. Simply Elegant), so this makes me further suspect that it all has to do with the texture and how the printer is "reading" the advancement from the surface.
I also know what you mean that length is a factor. If I was printing out a 72 inch canvas, I would need to stretch the image to about 72.5" to get it to print to about 72 on the dot. But if I only needed to print a canvas that was 36 inches long, stretching the image to 36.5 was now too much. So certainly, its more of a percentage thing, but it sounds like you have tried to work your numbers already for each different size.
The canvas has a nice stretch to it, so you can always get at least 1/4" extra out of it if you stretch it tighter, and since I use black tape around the side, any amount of image that wraps around the side is ok to lose under the tape, as long as there is enough to wrap around. So I'm with you in that consistency is difficult, but I always err on the side of having a little more and it works for me. Sorry I don't have a better solution.