Currently the output for a Mapbox vector tile lacks the feature id defined in the spec.
FIDs are mandatory for some methods in Mapbox GL JS (like setFeatureState) so vector tiles from GeoServer are not really usable with Mapbox GL JS without FIDs.
There's already an open PR fixing this in java-vector-tile. Once (if) this change is accepted, we can use it in the Mapbox tile builder; there's a forked repo containing these changes as well. We would need to add some unit tests, update some versions and merge it with a new PR.
Thanks for the detailed bug report, looks like the PR was merged.
Are you in position to make a geoserver PR upgrading the library and testing for this fix?
I've manually merged the fix on master. In case one wants to do backports to stable and maintenance, the change in must be merged first.