It is working the same in v44 or v46. There is only one thread , when it is occupied in one process it cannot handle something else. So in order to do that you have to interrupt your process sometime to display new message or handle the process in a separate thread with some exchange between main thread and task thread
The real life implementation is that once the user clicks the button a string list is populated and then inside a for loop a DLL is called for each list item.
For each call to the DLL the lock indicator message is changed (same as the timer event in the example) - the displayed message is never changed from the original setting - this is my real life issue.