I think a way forward is to examine the Persian imperative & conditional forms which are productive forms of this preverb “b-“, in modern Iranian Persian and see if its presence or otherwise, makes a difference, and if that difference can be extended to the past tense, as used in classical and literary Persian. I mentioned some of the following is another thread some time ago but I have not found it yet.
Looking at a conditional sentence اگر بدانم دوستم داری اینجا میمانم/"if I know you love me I will stay here", strip the “b-“ preverb, اگر دانم دوستم داری اینجا میمانم, this can work but it shows a lack of commitment about staying, by the person who says the sentence, “b-“ adds that assurance as in "he will stay if he is sure she loves him".
Looking at an imperative sentence برو به آنها بگو/go and tell them, now strip both preverbs رو به آنها گو, here the imperative without “b-“ can be meaningful and you certainly see it in poetry, but it lacks the commitment that says the command is to be executed as soon as.
The meaning & origin of this “b-“ is very likely the Persian verb بودن"to be", it presence adds a sense of "be!" or "!باش", it is very close to or even the same as "were" in "if I were to know you love me I will stay here", "were" is the subjunctive version of "to be", one of the few surviving subjunctive forms in English. In the imperative case “b-“ adds the same meaning of "be!" or "!باش", so برو means روا نه باش"be gone" i.e. 'be [in a state] going' and بگو "be [in a state] saying" گویا باش.
Applying this unproven theory to the past tense بگفت must mean گویا بود or "entered an observable state of saying" and by extension بخندید must means "entered an observable state laughing" so بخندید in Persian: "خندا ن بود" so خندا ن شد و خندیدنش مشاهده شد
So may be that question is valid: پدر شما خندید یا بخندید؟