Ok... Just some clarification.... The "pop-up" in the second screen shot of original post is from placing a break point on the closing brace following the call to MapView.Active.Map.GetZsFromSurfaceAsync and when they break point was hit I hovered over the l_elevationResult to show the dialog in the screen shot.
Since my original post, I thought maybe I need use geodetic coordinates (i.e. Lat/Lon). In addition, I thought I'd try other surfaces as well. So below is an updated screenshot of the code I'm using...
So I'm still creating the initial MapPoint using my projection coordinates (British National Grid if that's important) to instantiate the MapPoint on line 156 and that's the Geometry being passed to GetZsFromSurfaceAsnyc on lines 159,160, and 161. But then I overwrite my local l_x, l_y with geodetic coordinates for the same area and instantiate a new MapPoint using those coordinates but the subsequent calls to GetZsFromSurfaceAsync still result in l_elevationResult being in the same state as shown in my initial post.
Of course, each call to GetZsFromSurfaceAsync is going to overwrite the next but I was using this code in Debug mode and checking each return value one by one as each ran just in case you were wondering.... Thanks!