I've got a cascading lookup filter on a form that hasn't changed in over a year. Last week I noticed it not working as expected. When I watch console I see it's not applying the correct 'current' filter, it's always one behind if that makes any sense.
To isolate the issue I replaced my code with your Category->Product example code, just changed the two field names to mine but it's still the same behavior. Imagine a new form with your example, change Category to Cell Phones then see Product is the full unfiltered list. Then change Category to Cameras and see Product is filtered for Cell Phones. Change it to TV and Products is filtered for Cameras! It's always applying the filter for the last Category value, not the current one. But when I print the categoryId to console it's always showing the correct current value, but the OData query isn't using that value.
I figured this was general SharePoint tenant weirdness, thinking it would resolve itself after a few days but no such luck. For now I had to comment out the filter. Any ideas?