There is nothing wrong with these files. Sort (as any GTF):
zcat Homo_sapiens.GRCh38.105.gtf.gz \
| awk '$1 ~ /^#/ {print $0;next} {print $0 | "sort -k1,1 -k4,4n -k5,5n"}' \
| bgzip > Homo_sapiens.GRCh38.105_sorted.gtf.gz
That having said, if you need the file being strictly coordinate-sorted then you always have to do that manually. An application could be indexing by tabix, that never works on Ensembl files out of the box, you always needed to sort them by coordinate.
Afaik, the order is that for a given gene the gene type comes first, then transcript and then all the exons and other attributes for that transcript. And that is repeated for every transcript of that gene. This is more of a "logical" than strict coordinate order, might be meaningful for some parsing purposes where a line-by-line parser would first pick up the gene as a whole and then sequentially all its transcripts and components (CDS, UTR...) without the need to look "ahead" or "back" in the file.
Hence, I do not see a problem here, maybe you assumed that the files were strictly coordinate-sorted? They're not (and never have been).
Edit: As suggested by GenoMax on Slack, a dedicated toolkit such as https://agat.readthedocs.io/en/latest/index.html might be useful to sort GTF file, especially when GTFs are not as well-formatted as Ensembl, to capture some edge cases in formatting etc.