I've been using Streaks[1] on iOS for the past few weeks and it's everything I've been looking for. It supports widgets, all data stored locally and can import/export as a csv file, no ads, no tracking, no bullshit. I used to use Loop Habit Tracker[2] on android and it was similarly really good in all the respects you mentioned and more, plus I managed to transfer/convert all my habits over to Streaks when I switched as they're both csv formats.
[1]: https://streaks.app/ [2]: https://f-droid.org/en/packages/org.isoron.uhabits/