An initial update - and of potential interest for anybody who has timer-based updates to visible components . . . .
Before that a HUGE thank-you to Jamie for his insight and his willingness to help . . .
I implemented a version of Jamie's suggestion, using globals rather than writeable const (as I have two timers running in parallel). The fast timer is clocking at a fast rate (for this test at 10ms) and the second is running once per second. In 4 minutes of runtime there were 6 recorded conflicts where both timers initiated GUI refreshes at the same time which would have caused a crash . . .
2nd test - repeated the run and this time I performed a manual event which also caused a refresh, clicking rapidly on a button which initiated a display action. It was easy to cause a crash . Not good. IMHO this is a bit of a bug in the implementation of the controls . . .
Next test will be using a critical section which I will invoke in the ontimer events and on any user control actions which can be performed while the timers are running (in the case of my app not all the time and not all controls). Outside of modifying the logic of the windows control software this would seem to be the 'proper' solution as in theory even using a variable as a control leaves a small race condition between testing the flag and setting its new value, and also means missing a timer cycle occasionally. Update to follow (tomorrow as in Europe it is time to sleep . . .).
Happy coding . . .
R