Do not load external subtitles when JoinFilterGraph. Instead, do it when CompleteConnect or the first time the graph pause.
Add ExternalSubtitleDetector filter and modify XySubFilter to accept connection from ExternalSubtitleDetector. ExternalSubtitleDetector is registered as Autoload.SubtitleProvider. It creates a dummy output pin if external subtitle files exists. When ExternalSubtitleDetector JoinFilterGraph, it 1) adds a XySubFilter to the graph if external subtitle files exists and no XySubFilter exists in the graph; 2) connect to the XySubFilter.