There is a lot going on in the question. You'll get better responses if you narrow the focus of your question. Further, you'll better understand the question yourself.
Here is some suggests which will lead you in the right direction:
Theory:
Chow Test
You're going to want to do a simple chow test first around the suspected break data. This is a good start, however, you're example suggests that you'd rather be agnostic about the exact break data, which is a good idea.
Endogenous Testing
The problem with your suggested approach is that the distribution of the test statistics is not going to follow a typical normal distribution. To begin to understand why this is, image you have 100 different potential breaks and you test each of the resulting 100 dummy variables, using a 5% significant level. By pure luck you're going to fail to reject that dummy variable is different from zero for 5 breaks on average.
So what do you do? Fortunately, some very smart people figured out the correct distribution of the test statistics. The testing procedure is as follows, roll a chow test over your data, compare each of these test statistics to critical values obtained by the aforementioned very smart people. Break date which corresponds to the maximum test statistics, which is statistically significant, is the most likely break date
Casual Inference
Imagine that you find a break date. Good! One way to estimate the effect of the break is to now run a model which includes a dummy variable which is zero before the date and 1 after. However, the question now is this event casual?
Let's look at a simple example, assume a country deploys some stimulus package on a given date and you want to measure the impact of the stimulus on GDP. Does this coefficient corresponding to the occurrence of the event measure a casual relationship? The answer is, maybe. But probably not. Presumably, the stimulus was dispensed because the country was doing poorly. Therefore, poor GDP could have caused the stimulus, not the other way. This is known as an endogenity problem. The stimulus package is not truly a natural experiment.
Implementation in R
To implement this in R, you're going to want to use the strucchange
package. The documentation is pretty good, here is the vignette
Best Answer
Not sure how it is relevant to the original question. But just in case somebody still needs an answer to this old question, one possible tool in Matlab is the BEAST method I developed, available at https://www.mathworks.com/matlabcentral/fileexchange/72515-bayesian-changepoint-detection-time-series-decomposition. For good or bad, it is a Bayesian changepoint detection algorithm.
It can be installed by running
Then, here is a quick test:
Given below is the plotting of the example:
More details about the toolbox are also available at https://github.com/zhaokg/Rbeast.