What is the best way to create materials and assign materials to prims?

Previous we are using these commands:
these series of commands
omni.kit.commands.execute(
“CreateMdlMaterialPrim”,
mtl_url=floor_material_url,
mtl_name=floor_mtl_name,
mtl_path=floor_material_prim_path,
select_new_prim=False,
)

            omni.kit.commands.execute(
                "BindMaterial",
                prim_path=floor_prim.GetPath(),
                material_path=floor_material_prim_path,
                strength=pxr.UsdShade.Tokens.strongerThanDescendants
            )

However, these commands sometimes will cause the standalone application to hang.

Materials are from this folder http://localhost:8080/omniverse://127.0.0.1/NVIDIA/Materials/vMaterials_2/

update:
after switching to http://localhost:8080/omniverse://127.0.0.1/NVIDIA/Materials/Base/
hang does not happen anymore.