In a notebook with many dynamic modules I have a long simulation which I start with a button. I would like to give an indication that the simulation is starting and also when it is finished. Below, in a toy example, I attempt to use a simple message and also an EvaluationMonitor. Both only give results when the simulation is finished. What don't I understand and how do I fix this? Many thanks.
ClearAll[LongSimulation]
LongSimulation[] :=
TimeConstrained[NDSolve[{Derivative[2][x][t] + x[t] == 0,
x[0] == 1, Derivative[1][x][0] == 0}, x, {t, 0, 100000*Pi},
MaxSteps -> Infinity, Method -> {"Projection", "Invariants" ->
{x[t]^2 + Derivative[1][x][t]^2}},
EvaluationMonitor :> k++], 3]
k=0;
DynamicModule[{message = " "},
Column[{Button["Start Simulation", message = "Starting Simulation";
LongSimulation[]; message = "Simulation Finished"],
Dynamic[message],
Dynamic[k]}]]