I got this runtime warning while running the code. I got this for one of my other preference changes. The only way I could get rid of this warning was to to add a DisapatchQueue.main.async which I know you don't want to do.
It seems to occur whenever the view changes because of an observed object changing. I haven't tried to reproduce this yet.