A few things worth untangling here.
First, it’s important to recognize that the slow PHP load time and the large image payload are two distinct problems. Fixing one doesn’t fix the other, and some solutions for one can even make the other worse. A caching plugin or Simply Static helps with PHP execution time. Image optimization and a real CDN help with the download size. You need to think about them separately.
On the PHP side, I’ll add a caveat to my earlier recommendations: the PageSpeed Insights result that @JavesPotato shared showed a First Contentful Paint of 3 seconds, which suggests the PHP processing time might not actually be as bad as Pingdom made it look. So focusing on the large images will probably see the most clear benefit to page load time.
Regarding the images, you said that the plugins didn’t work well for you. I don’t know if it is the result of plugins or manual images, but the images that are stored in WordPress itself seem to be very well optimized. For example, this screenshot was converted to webp and resized, and comes in under 150 KB:
Meanwhile this image on GitHub is 4.7 MB:
The difference is that the first image is in your WordPress media library, so the optimization plugin processed it. The second one is on GitHub, so the plugin never touched it. That’s why it might feel like the plugins aren’t doing anything. They are, just not to the images you moved off-site.
This is the core issue with using GitHub as a “CDN”. It was well intentioned, but it’s actively working against you. Your optimization plugins can’t reach those files, and GitHub Pages doesn’t set the same aggressive browser cache headers that our hosting does by default. So you’re losing on two fronts.
My suggestion: move the images back into your WordPress media library and let your optimization plugin do its job. Combined with the browser caching our servers already apply, that alone should give you a noticeable speed boost, without any additional tooling.
One thing a plugin can’t do for you is decide what resolution an image should be. If a Full HD screenshot is only ever shown as a small card, the plugin won’t know to drop the resolution. That’s a judgment call you have to make. There are probably plugins to do that, but you’ll still have to go through the images yourself and decide what resolution they should have. So yes, to your question about whether it’s worth the time: for the images that are used small, it is.
A proper CDN on top of that is still worthwhile, and I stand by the R2 plus Cloudflare recommendation. For Cloudflare’s CDN to work properly though, you’d need to put the R2 bucket on a custom domain, which might run into the same subdomain limitation you hit before. If that’s a blocker, Amazon S3 plus CloudFront is a good alternative. CloudFront gives you a default xxx.cloudfront.net hostname that works out of the box, no custom domain required, so you can just point WP Offload Media at it and be done.