The ctypes-based probing loaded a second libcudart copy into the process, which corrupted CUDA/runtime state and segfaulted the scheduler processes shortly after registration (reproducible on prefill ranks, intermittent on decode). cuda.bindings.runtime.cudaPointerGetAttributes is a properly typed binding and boots cleanly on both roles.