The load time is not an issue really since it is just text data and only about 20 products. We have a nifty setup actually, we use Algolia to display the products on the category page, we are just making a double call to Algolia before the page render and taking their json array and modifying it into what is needed.
If you run this page through the Structured data testing tool, https://www.ebay.com/b/Fine-Jewelry/4196/bn_2408477 this is what one of us is proposing. See how the tool does not break each into a product node.
At the other time this is a page that the other is proposing, https://www.apple.com/shop/mac/mac-accessories It breaks the products into nodes. (albeit there are errors that can be fixed with the pricing)
I think this better illustrates the issue.