Das Problem ist, dass der zweite Teil Ihres Substring-Arguments den ersten Index enthält. Sie müssen den ersten Index von Ihrem zweiten Index subtrahieren, damit dies funktioniert.
SELECT SUBSTRING(@Text, CHARINDEX('the dog', @Text)
, CHARINDEX('immediately',@text) - CHARINDEX('the dog', @Text) + Len('immediately'))