I've published multiple blogs on my ISP setup and how it has annoyed me in the past. However this one is laser focused on one attribute: MTU. You can read more about it here. Basically it is a balancing act, where optimal performance values are higher MTU, but compatible values are lower. MTU is also dependent on medium and protocols your packets were transmitted over etc.
While innocuos at first, value is very complicated to optimize at scale, and a lot of clients and server handle this automatically for you (but as you might have guessed, not everything does it correctly). Hence to avoid failures, it is better to set the highest possible MTU based on your network configuration. However, it can be a bit hard to get such information from your ISP so I use the following script (based on some resource which I am unable to find to attribute at the moment):
This gives me a value
1460 for my BSNL connection. This helped with a lot of hung or slow connections for me. YMMV. To set the MTU on my OpenWRT router, I basically set the value in Network > Interface section like this.
P.S after some more research, it seems 1472 is the official MTU used by the devices. It may help with some issues like no IPv6 leases etc. Ref: https://bharatfibre.bsnl.co.in/IPv6.html