I don't know your exact situation, but I have few solution.
If your category pages does not bring any traffic then better to use noindex for a lifetime, but don't worry Google still crawl and pass pagerank on noindex pages as well. It just does not show up in Google search result.
If category pages are more important to you and bring better traffic and leads, then probably you should add textual content on it, so even if your product is expired, it will generate traffic and you can display your other products on it. I will also not remove the expired product as well, I will just show it, it is expired.
If your category pages is not much important for you, then simply don't include your category pages in your sitemap, so it will less crawl by Googlebot and in meantime you can come back with new products in same category page. Or keep doing what you're doing, I don't see any harm.
Regarding your question.
Does google back to revisit a noindex page, that realized it was
noinxdex before?
Yes Googlebot will come back and crawl your category page via sitemap or from your any webpage link and it will index it again.
Is it legal method? Does not google wonder why I toggle index noindex
a page multiple times?
There is no any official penalty about adding and removing noindex tags for multiple time, as far I know when Google index the page for the first time, then it assign inception date, and when you remove it, it might get delete automatically. And when your category pages index again then it will assign new inception date.
And in last, If it's all about law/duplicate content then there is no need to use nofollow tag.