The app supports infinite-depth subtasks, but there is no way to link two tasks at the same level
Subtasks are themselves tasks, so their priorities can be set separately from their parents. Collapsible subtasks will be displayed in searches and filters, so if you have a custom filter for high priority tasks, you will also see their lower-priority subtasks
Sharing is done at the list level, and this is handled by your synchronization service
I haven't personally used any command line CalDAV clients so I have nothing to offer there, sorry!