I used to dry hop COLD in the keg until it kicked.
Now I cold crash in fermenter, rack to my keg, then dry hop as the beer warms back up to room temp- leave it in for 4-5 days, then remove them and carb the keg. It seems like i'm getting better aromas from this method
I prefer 5-7 days. I did 20 days once and didn't notice any "grassy" flavors everyone always talks about but it didn't seem to have as much aroma as I thought it would. I want to do an experiment to see what length I prefer.