py,st3m-ui: hold overlays mutex for shorter intervals
For fps overlay only show every 5th frame, for the regular overlay first collect list of active overlays, and only if there is overlays active get and flush the overlay ctx.
The overlay mutex being held makes mpremote run unreliable, now we do not hold the mutex when there is no overlays which means that once an app has succeeded in running with mpremote run the chance of succeeding again is high.