The grain bed will always compact to some degree when circulating with a pump. How much and how quickly the compaction happens depends on a number of variables, but the primary one would be the pumping rate or how much suction you are applying to the false bottom.
I stir frequently. Initially at dough in, then again after every rest when doing a step mash. IME, it's most important to stir the grain bed immediately prior to the sparge and then sparge slowly. Stirring at this point loosens/re-suspends the grain bed and running off the wort slowly keeps it from appreciably re-compacting during the sparge. Most fly sparge slowly anyway, so there's nothing different in that respect.
My crush is just right. I've been milling my own grain for a very long time. I know what the grist should look like. Besides, crushing finer would have the opposite effect of what you are describing. IOW, a finer crush will improve the yield and a coarser crush will reduce efficiency. Too fine and you will have a stuck mash or excessively shredded husks which can cause astringency problems.
I don't mill at any specific gap setting. I adjust the mill according to visual inspection of the grist and I adjust it every time I use it. I also adjust the mill for different malts and grains. Fortunately, the mill I have is easy to adjust on the fly.
IMO, there is only one way to measure efficiency accurately and that would be pre-boil. This is technically a measure of the lautering efficiency. I checked the mash efficiency, or conversion efficiency, a few times, but it was always very near or over 100%, so I no longer bother checking it. I've never had a mash fail to convert. Since I began consistently following my frequent stirring routine, I've experienced very high lautering efficiences. I would have written it off as a fluke if it had been a one off event, but it was not, so I can only conclude that the stirring is what made the difference. IMO, stirring also helps to more completely wet the starches and it probably knocks loose a lot of tiny air bubbles trapped in the starch or otherwise clinging to the grain. That's just a theory I have with nothing to back it up.
My flow rate is as fast as I can go when circulating the RIMS. The limit is how well the wort flows through the false bottom. I would estimate the flow rate is about 1 gpm and possibly a little more than that. I have not measured it. It will also vary some during the mash as the grain bed inevitably will compact and slow the flow rate. I stop and stir when this happens, then resume circulation as before.
There was a time when I thought that it was impossible to achieve high rates of efficiency on the home brew level. I also thought that those who claimed to get very high efficiency were either measuring it wrong or outright exaggerating their results. I no longer think this is the case. I'm sure that sometimes it is, but not always.
I have confirmed the theoretical benefits of stirring on three different systems recently and the results have been very consistent. Most recently when brewing a 24 gallon batch. Apparently, batch size is not a major factor regarding lautering efficiency.