At some point I realized that the solution to this little problem is Emacs org-mode. It’s just sitting there waiting for people to use it.
I’m a l former emacs user of ~10 years and I could never get used to org mode, so it’s definitely not for “normal” people.
Additionally, in modern times being emacs bound means no decent mobile client, no web interface, and mandatory roll-your-own sync and backup.
There’s a few friends I know who swear by org mode up and down, but it’s a considerable effort for most people to use it.