I'm sorry to hear your betta is not well.
It sounds to me like you've done, and are doing, all you can for it.
The two other things I'd try checking are nitrites and nitrates and see if there's an issue there. Also, by 'normal' ammonia, do you mean zero? If not, that could certainly be part of the issue.
If the rest of your water parameters test well, it's possible that it's simply age. While bettas certainly can be longer-lived fish if cared for properly, two years is not an uncommon lifespan for a betta, and the symptoms you describe are not at all uncommon for bettas exhibiting old age. I'd certainly test those other parameters and try to rule everything else out though before coming to that conclusion definitively.
Perhaps others will have suggestions, but one thing you might try is lowering the water level in the tank a bit -- this may make it easier for your betta to swim to the surface to breathe.
Good luck, and I'll be keeping my fingers crossed for your betta!