This is not a feature request, but a very special case to make use of Resource Pack features that are in the game, that sadly is not working for Sugar Cane and Sugar Cane alone. This ties into
MC-70127 that I reported a while ago, that report was marked as resolved and "Working as Intended". This may be related, but it highlights the problem in a different way.
As you may know, Sugar Cane has 16 growth stages according to https://minecraft.gamepedia.com/Sugar_Cane#Block_states and more Sugar Cane grows when the block has reached age 15. I made a resource pack that uses this feature known as Block States that varies textures depending on the "age" Block State.
I then created a new world and flew around and then noticed that ALL tall grown did not look right. If it grew it usually started off at age 0, which is to be expected. But then it grew again and the previous block never updated the age of the Sugar Cane block to 15, thus never using the full grown texture. I decided to increase randomTickSpeed to high numbers like 1000 and even 10000 to see if it would grow with a random age and if it would use the texture. It did grow with random age and it did use the texture. However, it always got stuck at that age and kept growing new blocks above.
This may now start sounding like a feature request, but this is to prove a point.
Bamboo, Kelp and Twisting Vines who has a different block that naturally generates without the block state except for the top most block who has the block state "age" and the same goes for Weeping Vines, except it is the bottom block that has the "age" block state and we can vary the texture based on age here.
All other crops like Wheat, Potato, Carrot, Beetroot, Sweet Berries and all other Saplings like Oak, Dark Oak, Birch, Jungle, Acacia, Spruce use the same "age" block state and we can vary the texture here with that feature as well.
TLDR; The problem here is that Sugar Cane never naturally update the "age" block state. Not just in the Debug Screen. But also for the block. One can however use commands or debug stick to age the block and that updates the Debug Screen. It can grow more sugar cane with random age, but the age will never update after. It always stay at the age it generated in, then magically another block grows on top of it and the block visually represents this through a resource pack that uses the "age" block state feature.