After over a week of wandering around in the dark, I discovered how convert the coordinates. The input shadowSpacePosition is in Metal Normalized Coordinates: x and y -1 to 1, z 0 to 1 with the origin at the center of the drawable. When this is stored in the depth texture it is converted to texture coordinates: x,y and z 0 to 1 with the origin on the bottom-left. So to read the proper depth in the depth texture the code is:
		 constexpr sampler shadowSampler(coord::normalized,
																		 filter::linear,
																		 address::clamp_to_zero,
																		 compare_func:: less);
		shadowPosition = in.shadowSpacePosition.xyz;
		shadowPosition.y *= -1;
		shadowPosition.xy += 1.0;
		shadowPosition.xy /= 2;
		cmp = shadowTexture.sample_compare(shadowSampler, shadowPosition.xy , shadowPosition.z);
	 if(cmp < 0.1)
			 isShadow = true;
		else
				isShadow = false;