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!