I'm not sure about the "connected: No" thing, but as far as the Active Workers count is concerned, it may have to do with something I've noticed. I've seen that soon after a round ends, the workers on my account page show a last submitted share time typically far longer than when they actually submitted a share. I haven't looked at it closely enough to determine if it's a time zone thing or not, but I have seen the my account page show last submitted times within the last 30 seconds, refresh the page 2 minutes later (consequently a new round begins during that time), and then it says the last submitted share is hours ago rather than 2 and a half minutes ago. Just a thought as to why the active workers count (within the last hour) drops to zero when a new round begins.
Yes, all those bugs are related to single thing, to the update of "last submit timestamp" for each worker, which is currently incorrect (it is only correct immediately after processing the last block); I'll fix that, it just need little workaround. All this is because I optimized data structures for writing instead of for reading (as there are tens or hundreds of writes per second, but only few readings), so reading exact timestamp for every worker cannot be so "cheap" in all cases. I have to do some postprocessing (denormalization) on the dataset to allow fast reading of them. But this bug does not affect mining core and calculating rewards in any case.