I wonder if you would like to have the Eclipses take place at irregular intervals? if so - having a regular Earth like planet that circles the primary on it's own BUT another much larger planet circling the primary inside the orbit of the Earth like planet could give you opportunities for Eclipses to happen at pretty odd intervals.
It wouldn't need to be a gas giant (And really couldn't be one either - such close proximity to the Sun would cause it to torch up and become a Binary system!) But it could be a large rocky body. OR just to make things really interesting - it could be artificial, perhaps even a giant hollow ball that has some kind of internal habitable zone... That's if you are going down some kind of SciFi road... Come to think of it - you could even have it be a NATURAL hollow sphere, there's plenty of people that have tried to explain why and how Pellucidor could exist for you to crib off some of that work...
Regardless of what you do on the celestial body causing the eclipse, have them be 2 separate planets in independant orbits is IMHO easier to design than a habitable moon. I've always felt a bit iffy about how an ecosystem can develop with such radical variations in the Day/ Night cycle a moon is likely to have. When you look at MOST of the moons in our own solar system they are tidally locked - this is going to make things complicated from a Day Night point of view.
The best way to try out what I'm describing is grab a Basketball (Or soccer ball) and a Softball and a Tennis ball. Put them in a line from biggest to smallest - the Basketball then becomes the sun, The Softball becomes the planet that creates the eclipse, the Tennis Ball becomes the planet your characters live on. You can then move things around a bit so you can see how far away from the tennis ball and the basketball the softball needs to be to fully eclipse things. You'll need a bit of overlap - so that your whole planet remains in shadow for a good long time.
My thinking was that the bigger planet would have a slower orbital period than the smaller one... BUT I took a quick google and found there are Kepler's laws of orbital mechanics that say otherwise - that in fact the further you go from the Sun the longer it takes to orbit the sun, Explanation here:
https://www.exploratorium.edu/ronh/age/
SO for a bit of scientific consistency - you should go with the habitable planet orbiting slower than the one causing the eclipse.
That site also has some nice info about relative facts between the planets in our solar system that'd be quite useful for this whole idea...
Here is an image that demonstrates it working reasonably well (You will need to go to the site and copy the settings to see it working)
https://i.sstatic.net/nmBVm.jpg
The Site is: https://phet.colorado.edu/sims/my-solar-system/my-solar-system_en.html
I played with the settings a fair bit before figuring out ones that gave approximately the results you were after - But these ones demonstrate you can probably achieve the exact sort of result you are after. Of course - you'd need someone smarter than me who specialises in celestial orbits to figure out what you will really need in terms of realtive mass & velocity.