Could you do something along the lines of incrementing a counter every time the system wakes up after a 4-hour sleep. When the counter reaches 3 you change the picture and reset the counter to zero before sleeping again. When waking up and incrementing to 1 do nothing but go to sleep again. Repeat for next wake up incrementing to 2 then sleeping again. At the next wake up it increments to 3, show a new picture, and go to sleep again and repeat. Or won’t that work?
Have a look at the sleep_for function in inky_frame library. That implements the delay in minutes and uses a different method which doesn’t have the 255 timer (minute at slowest clock rate) restriction. I think it was added to the inky_frame library after I wrote that slideshow program. Comments in code suggest it works for up to 28 days.