It's possible for an iOS or WatchOS Simulator to be deleted, but the device directory to remain. The current ioslib only detects simulators by walking the filesystem. This leads to an inconsistent state.
Instead, we should just eat the cost of subprocessing simctl. I think we're still going to have to read each device's plist file to get additional info.