I have also noticed that you cannot use aysncOpen() when trying to open a Realm on a background thread. asyncOpen always forces the callback on the primary thread. Which means that if you want to open Realm to write to it on a background thread, you need to use Realm.open() instead.
I wrote a Medium article on this last moth.
Richard