I am pretty sure that I have it working now by calculating the extent of the tile requested by expanding the bounds of the viewPort by 25% in each direction and then using that bbox in my legend request. It would still be useful to get answers on my two questions to get confirmation on the approach. Thanks, David.