Самое простое требование к адресу - последнее:
Также голубая нить блока закончится только если все дочерние
темы закончены и само собой.
Вы просто присоединитесь к дочерним потокам, чтобы это произошло.
Однако, что касается других ваших требований, ваша проблема в том, что между потоками нет родительско-дочерних отношений. Как только один поток запускает другой поток, эти два потока становятся равноправными. Следовательно, вы не можете полагаться на операционную систему или платформу, чтобы установить иерархию, которую вы ищете. Вам нужно будет реализовать это самостоятельно, возможно, с помощью какого-то механизма сигнализации, когда родительский поток или какой-либо поток контроллера убивает другие потоки.
Однако вам, вероятно, лучше, если вы перепроектируете свое приложение, чтобы оно не нуждалось в этой иерархии потоков. Подумайте, почему вы считаете, что вам это нужно, и какими еще способами вы можете выполнить то же самое - возможно, структурировать свои данные иерархически, и каждый поток работает только с данными, назначенными ему?