As far as I know there is no notification you can get automatically from teststand when the first cleanup step is executed. Also, I'm not sure that would make sense in cases in which you have subsequences because subsequences go to cleanup when their main is done running even though the main for the calling sequence might not be done yet. Therefore there isn't really a system level state change of Setup->Main->Cleanup, rather it is entirely per sequence. If you only have one sequence then what you want to do is trivial, just put a .NET step as the first step in your cleanup that does whatever you want to do, or post a UIMessage from the first step in your cleanup if you are wanting to custimize a UI that way.
Here's an illustration of why there is no system wide (per execution) state change of Setup->Main->Cleanup:
Say we have sequence1 which calls sequence2
Say sequence1 looks like this:
Setup (empty)
Main
Step1 (Sequence call to sequence 2)
Step2
Cleanup
Step3
Step4
Say sequence2 looks like this:
Setup(empty)
Main
StepA
StepB
Cleanup
StepC
The order of execution of steps would then be:
Step1 (main)
StepA (main)
StepB (main)
StepC (cleanup)
Step2 (main)
Step3 (cleanup)
Step4 (cleanup)
Hope this helps,
-Doug