Yes, miner subscribes to extranonce changes and receives extranonce updates just like job updates. If miner does not subscribe to extranonce, server will never send mining.set_extranonce. With set_extranonce, next work has to be built with new extranonce. The sequence of methods send from NiceHash is following when switching order:
mining.set_extranonce
mining.set_difficulty
mining.notify
That means switching order is as fast as changing work/job. No more reconnects. If there are orders paying less than what you want, you will be of course disconnected.
Does this fork of sgminer address the idle bug, or is that still a work in progress?
Work in progress.
Several days ago I was investigating this idle bug to satisfy my own curiosity and offered to provide the fix to you for free if I found it. I found and fixed it two days ago, but you had already hired someone else to do the work instead, so obviously I can no longer give it away for nothing. Today, that person contacted me for some information about the bug, so I assume he has not yet found it. I have no doubt that he or someone else eventually will, but how long it will take is anyone's guess, as it is nested pretty deeply in the muck.
I offered the fix to you for a token amount -- a quarter of what you were paying him -- and also to send the fix in advance of payment for verification, but you declined. So how long it remains a work in progress is really up to you...