The loadGeometry function calls the callback either sync or async depending on some internals. I don't like such constructs as it might lead to subtle bugs. I would add a timeout 0 here to make the `else` async as well.