There are a few questions in this. It will take some effort to unpack them
all, so here goes:
There was an announcement back in (I think) April 2018 that LTS kernels would
be supported for 6 years. Well, it turns out that's not entirely true. Well,
maybe it is. What seems to happen is that LTS kernels start off with 2 years
of support only, and then later get updated to add 4 more years later on.
That (going from 2 years to 6 years) happened with 4.14 back in July:
https://git.kernel.org/pub/scm/docs/kernel/website.git/commit/?id=a294222b772df262eb284c0503f6a6070f5bb22a
So far, every LTS kernel that's come out since then has been given the 6 year
treatment (4.4, 4.9, 4.14) but 4.19 and 5.4 have not, or at least have not
*yet*. Will they in the future? I do not know; all I can say is that they're
not listed that way right now but that doesn't mean the extra 4 years won't
be added later like it was for 4.14.
Anyway, I was able to duplicate this problem and believe it has been fixed in
version 5.4.0-gnu-2.0. It would be helpful to test that, as it seems to be
fixed for me now.
To answer the other involves consulting the table at
https://jxself.org/linux-libre/
As you can see, the package called linux-libre-lts always gets you the
"current" LTS. This would be why you were upgraded to 5.4, since that is an
LTS version. If you want to stick with an a specific LTS version, the way to
do that would be to uninstall linux-libre-lts: sudo apt purge linux-libre-lts
(otherwise you'll be getting prompted soon to upgrade to 5.4.1 soon, as I am
currently compiling that version as I write this message) and install one of:
linux-libre-5.4
linux-libre-4.19
linux-libre-4.14
linux-libre-4.9
linux-libre-4.4
The package names that contain a specific version number like those will
cause you to stick with that kernel series only. If you should decide that
you want to move to another LTS in the future it will be on you to decide
both when and which one, since you won't be automatically moved anymore. BUT:
I encourage you to re-try 5.4 since I believe the problem has been fixed with
5.4.0-gnu-2.0.