We had three kinds of retros - product(half an year), sprint(monthly), incident(per rotation). Yes product folks join the first one, but definitely not the more frequent engineering retros, which is also where the mentioned issues surface faster, also is taking the most time. How's it like for you?
Speaking generally (as I am currently between roles) the whole team always comes to retro, including the team’s product person. Sometimes external people (e.g. from Customer Success) have been invited as well. And I’ve never seen any problem getting buy in from product.
I honestly think restricting retros to the engineers on a team is too narrow.
Most places I’ve worked this has been fortnightly.