Hi Hakan, I second Michael's comment: very interesting!
But if something looks to good to be true, it usually is NOT true!
I think the problem is that your apparent Laplace Transform solution is actually NOT a solution. I still don't understand where it came from, and why is there y[0] in this spurious solution, Exp[-(2a+c) t /b] y[0] that is clearly different than the one by DSolve. The term y[0] shouldn't be there after you already applied the initial conditions! I still have to think about it.
If I may, I think that in your enthusiasm, as we all often do, you violated the forgotten Roman proverb: "Hurry slowly!" and you wrapped your solutions into elegant Module-based functions, so that you could later test other ODEs subject to other initial conditions. But it seems that you did not evaluate the Module-based functions carefully enough, perhaps by peppering them initially with the Print command after each statement.
So, let's take a step back, and hurry slowly in analyzing the Laplace Transform solution.
First, that solution is NOT a solution of the ODE. Indeed, the following statement confirms this assertion, as it does NOT yield TRUE:
eqn /. y -> Function[t, Evaluate[Exp[-(2 a + c) t/b] ]] // FullSimplify
Second, going step-by-step in obtaining the solution leads to the following:
In[15] := leqn = LaplaceTransform[eqn, t, s] /. {y[0] -> 0, y'[0] -> 1}
Out[15] := c LaplaceTransform[y[t], t, s] + b s LaplaceTransform[y[t], t, s]
+ a LaplaceTransform[t^2 y''[t], t, s] == 0
In[16] := SolveValues[leqn, LaplaceTransform[y[t], t, s]]
Out[16] := {-((a LaplaceTransform[t^2 y''[t], t, s])/(c + b s))}
Note that in both Out[15] and Out[16] the term LaplaceTransform[t^2 y''[t], t, s] is UNRESOLVED. Consequently, the step SolveValues cannot really solve the equation leqn, even though it deceptively gives an impression that it does.
Again, thank you for a very interesting case that highlights the problem with Mathematica, which, without warning, produces here a clearly spurious solution.