Sort WooCommerce data with WP-CRON?

This doesn’t sound like a bad approach to me. The thing to keep in mind about WP_CRON is that it’s not a “real” cron and is only triggered when someone visits the site.

To that end, you could also do the check when the product page loads and hide the button as needed.