Hi John,
The client, virtual server and web server are indeed all on the same subnet, but the SNAT pool was set to Auto Map and the Out column is non-zero. If it was a routing problem, I'm not sure why setting the client pool to None, with the virtual server talking HTTP to the client and HTTPS to the server, would work.
Since reading your post and checking the things you suggested, my setup has started working. Sort of. I now sometimes -- and only sometimes -- get a response but it's very slow: it can take two or three minutes to receive a JPG that I can get almost instantaneously if I hit the web server directly. I don't know if this has any bearing on the matter.
Gary