It's generally the CPU that's the issue in RenPy games. RenPy can display images with "show" or "scene". Scene clears everything and then displays the new image. Show displays the image but never actually gets rid of it unless it you also do a "hide" (or a later usage of "scene" clears everything). So if a dev forgets the "hide"s, all the images just end up getting layered on top of each other.There's no problem with my 'potato' since it handles many AAA games with ease. This game is poorly coded I guess.
The usual culprit is videos that are called with "show". RenPy isn't all that great at video playback in the first place, and has quite high CPU usage when doing so. So call videos with "show" and forget to "hide" them, and now you've got 2+ videos playing at once. I used to have an i5 4690k and a single video would push it to 60%; a second would push it to 95% and things would get laggy; and a third would max it out and make the game pretty much unplayable.
And looking through the code, that's what seems to be the case here. Animations are usually cleared with a "hide", but not every time. And those "a couple hours/minutes later" screens? Videos, for some reason. And they never get hidden except by the occasional usage of "scene".