After spending too much time fighting ctypes and isinstance checks, I’m ready to throw in the towel on monkeypatching GeoDjango’s gdal module to lazily load the external library.
Trying to have my cake (external library that proves it can be done) and eat it too (both internal and Django’s test suites passing at the same time) is just too complex to be worth trying to figure out.
Guess it’s time for the “gathering interest” forum post on bringing it into core.