I'm probably missing something obvious but... Is there a way to force a SubFlow that is processing an asynchronous task that might take a minute or two to complete to immediately stop?
I feel it might be complicated or 'bad' to have (for example) multiple polling points within each SubFlow checking a global variable.
That was pretty much the only way I could see to terminate SubFlows as well. Poll / check a variable periodically while inside the SubFlow (Switch node) and, if the conditions are met, jump somewhere else. The negative of this is the need to periodically check...
That isn't what @Trying_to_learn was suggesting. Send in a message with a specific topic and in the subflow use that message to stop your process. No polling or variables required.