I recently started using Trilium. I like it, but it has a lot of rough edges that requires programm-y knowledge (i.e. I’d recommend it to a colleague but not an elder relative)
You can choose icons for every note which sorta meets your first point?
Sync happens via a self-hosted instance that also provides a web-interface. Relies on web interface for Android/mobile. It works okay.
The formatting leaves a lot to be desired. It is HTML on the backend, not flat markdown. You need to WSIWYG the formatting, but not all the formatting is provided in menu. If you edit the HTML source directly, things get stripped so you don’t actually have any programmatic control over the formatting. This means you can’t do things like intersperse a checked and non-checked list.
The share interface is very powerful. Having self-hosted publishing out of my note-app is the thing that’s kept me learning and hacking away at improving my little instance.
There are several API SDKs if being able to programmatically access your notes is important to you.
Direct link to that ‘temporary license’.