Memory usage in sub tasks vs. regular tasks
I think this is difficult to answer properly because it depends almost entirely on what the tasks and subtasks are actually doing.

For example, the main task could do something that ate 400MB of memory and triggered 400 sub-tasks that did nothing but return null not using any memory.

Alternatively, the main task could do nothing but trigger subtasks (using very little memory itself) but each subtask could use 400MB of memory.

Obviously with subtasks you have to me more conscious of memory usage because usually there will be multiple subtasks and there is only ever one main task.