I use the app opentask. Based on your criteria, it’s exactly what you’re looking for. It’s all stored locally on your phone, it has the ability to set recurring tasks, and you can create categories of preset and custom tasks. Deadlines can be set as far into the future as you need, down to the minute. It’s available on F-Droid.
Still a drop in the bucket, but these are fine numbers I can get behind