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.
They have a debian based version, it’s pretty awesome. It’s still a beta fork atm, but it’s rock solid so far