With these kinds of 'invoke a target to get info' scenarios (ComputeAvailableDevices and ComputeRunArguments) we potentially wait for an undetermined amount of time. We need to have a more user-friendly experience here:
- if the operation takes more than X time, give the user some signal that we're doing work on their behalf
- potentially enforce some kind of maximal allowed time limit to prevent infinite waits
Noted when reviewing #51914, but we have this pattern in several other places in the repo.