I've been doing some more work on this. So...
1. Focus now passes the reason for Autofocus (user initiated, Scheduler, Filter Change, HFR Check, etc) to Analyze. For HFR Check, Analyze will also display the HFR and limit HFR.
2. I've added an "Average HFR Check over" control (decoupled from Autofocus Average Over widget) so the HFR Check will use this. In Linear 1 Pass the optimum focus point during Autofocus will also use this. So, for example, Autofocus could use 1 frame but HFR Check could be set to 3 to minimise the chances of a bad datapoint incorrectly triggering Autofocus.
3. I've added a button to Focus to trigger an in-sequence Autofocus at the end of the current sub.
4. Autofocus Failed data is now being sent to Analyze to help with reviewing unattended sessions.
5. Outlying datapoints and weights/error bars are now shown in Analyze again to help review unattended sessions.
I looked into the suggestion for an HFR Check algorithm to look at Capture Sub HFR in combination with Focus Frame HFR to trigger AF. I'm not going to build this at this time. It's quite a bit of work for (in my judgment only) a small difference from the current approach.
I'm testing at present and if all goes well will merge fairly soon.