The average time in hospital might not be several months, but when you are at the tail of an outbreak curve, the ones who have been in months are the only ones left. Comparing them to the infection rate, or current cases, as you are doing, doesn't make sense. England is not at the tail end of a curve, so you would expect a different ratio.
Lots of people in England are still catching it, going into hospital, then out again/dying quickly. There will also be a cohort who are long-termers. As the new infections go down, this cohort will appear bigger compared to the number of cases.
Also, Covid is the name for the symptoms resulting from infection from coronovirus. If someone is still suffering the symptoms, despite not being contagious or testing positive, they are still being treated for Covid. They are still on the Covid ward. We don't know, for sure, all the details around contagion, so the figures you see are not contagious people, they are people suffering from having been infected.
You are making the assumption, statistically, that all hospital cases contribute the same variance to an analysis. Some will contribute only a day or two and some months and months. To understand why these figures look this way, you should look at the curves from survival analyses, not a normally distributed, average.