Relevant: I am in my 30s. I do have chronic health issues related to digestion and I am usually a bit fatigued and somewhat sleep deprived.
I find that I can only seem to do 2-3 hours of work before needing a large break. My work is all software-related. I run some servers for clients, manage their web apps, and do their IT. I occasionally write automation software. It sounds routine, but it's actually intellectually challenging, because the people I work with always have exotic and highly situational demands.
I bill hourly, but the granularity is minutes, so I make sure my brain is firing on all cylinders whenever I'm on a task in order not to shirk while on the clock. I am an intense person, and while I don't rush, I do make an effort to "keep my eyes on the prize" and not waste time.
Is what I am experiencing relatively normal, or does it seem my work-stamina could be so far below average because of other factors (such as my health)?
I would love to hear from a self-described "normal" person whether they can actually work 8 full hours in a day, and how many hours of intense intellectual work they can stomach before burnout - and whether they could return to do another 2-4 hours on the same day after a long break. Personally, a 1-hour break does not recharge me enough.
Come to think of it, I do feel I could do 6-8 hours of moderate non-intellectually-challenging work in a day.
Are you me? (Chrohn's in my case).
Sounds normal to me, I'm productive compared to a lot of programmers I know who don't have health issues and have a decade on me.
You need to be kinder to yourself, stressing about not been able to work for extended periods just makes it harder to concentrate - It just becomes a self-reinforcing downwards spiral.
In my case my hobbies are what keep me sane (you don't mention those), Chess for mental focus that isn't work (and social life) and Cycling for getting away from screens.
Otherwise the usual advice applies, try to eat better (hard with digestive issues I know) and get more sleep.