Ok, regarding the second point, would it be possible to fetch the ebay html from the browser, and parse it? Then you wouldn't need to use the API to check availability, and the IP address would be different every time.
This is technically possible, but for ~3,000 products, checking on an hourly basis would make ~72,000 requests per day -- which definitely would get flagged, I think.
So for example, they filter out 5 products, and from the javascript in the browser you perform the request for those 5 products, and then show the user which ones are available. It could also send the data back to your server. Of course you still have to be careful with the number of requests, but it would allow you to get more data without getting flagged.
I think I’m going to keep it relatively simple for now, just to see how it goes. If it becomes a bigger issue, I’ll try out your method!