If you send a GIF from the Gboard GIF keyboard, the GIF loop will get cut short, but only for the sender (the recipient will see the original loop duration).
Workaround
If you Forward the GIF to another chat, or if you clear your cache, you will be able to play the sent GIF with the original loop duration.
Steps to reproduce
Open Saved Messages, open Gboard, tap on the GIF option to go to the Gboard GIF keyboard.
Type in this GIF search term, "dog sending hugs"
The first GIF result should be of a dog hugging a cat, with the text, "Sending Hugs".
This particular GIF can display the issue very well. For now, notice the GIF's original duration.
Send that GIF to your Saved Messages chat.
Try to play that sent GIF.
Current result
The GIF gets cut off extremely short, so it doesn't finish the playback duration before it immediately starts looping (the incorrect loop for this GIF is pretty noticeable).
Expected result
The GIF should loop the full duration, rather than get cut short.
I resolved this by completely uninstalling the application on my Android Pixel 5. Clearing Cache did NOT work. Although clearing data may work. It's worth a try.
This doesn't last. The issue always comes back. Gifs are such a big part of how users on telegram communicate, this needs attention and to please be fixed!
This problem is still reproducible. As a matter of fact, having Telegram Desktop or Web open and sending a GIF through GBoard on an Android will cut the GIF for the sender, but as the sender, you can still see the full length GIF both in Desktop and Web. The problem is very specific to the phone app and no other app sees itself affected. The receiver always receives the full GIF.