I used something like the first option. Start with the default time before receiving the feed. When new items are discovered, the waiting period increases by 10%, otherwise it increases by 10%. Perform this adaptation with each update, and the system itself is configured.
You can use different percentages, for example. Decrease time faster to better respond to changing refresh rates.
Include minimum and maximum time intervals to continue waiting within a predefined range.
This is not perfect, but for me it was enough.
source share