A bug was logged for this back in 2021: BUG-000146399. In February of this year the bug was closed and the status was updated to "Known Limitation." "This is related to a known limitation with the software that lies outside of Esri's control. "
I don't know for sure, but I suspect what is happening is that there isn't a warning/error process to alert you if individual vector tiles get too big, so some attributes just get dropped to keep the .pbf tiles small enough.
IMHO, I think Esri sees vector tiles more as basemaps and less for serving feature data. The "Esri way" is to use feature layer views and renderers. So changing this isn't a top priority.
I've read that Geoanalytics Engine can be used to create the vector tiles (analogous to Tippecanoe, see below) but I haven't personally used it: https://developers.arcgis.com/geoanalytics/data/data-sources/vector-tiles/ It includes more controls than AGOL and produces a vector tile package that can be uploaded to AGOL, so if you have a Geoanalytics Engine license this may be the easiest option.
I've successfully used 2 work different arounds, though both take a bit of effort. The first was to build the tiles myself using Mapbox's Tippecanoe command line software. This gives you granular control over tile creation so you can, for example, include certain attributes at different scales and/or use simplified geometries at some scales. This can reduce the file size of individual .pbf tiles (and will throw a warning if you exceed the max tile size & features get dropped). Then, you can write a Node.js vector tile server to server up those tiles. This takes some patience, but there's some good resources out there to help with this:
The other approach I've used is to publish my data as vector tiles to AGOL, but with only a single attribute that serves as a feature unique ID. Then separately, upload all of the other attributes to a csv file. On the initial app load, the CSV gets downloaded and parsed into a JS object. Then use a function to find all of the Unique IDs for each class of a given symbology. So, for example, if I have polygons of forest type I write a function to go through the CSV file and find all the Unique IDs for "Oak-Confier" and add these IDs to an array. So you end up with arrays of IDs for each symbology class. You can then use a Mapbox expression to style the vector tiles based on those arrays of IDs.
Finally, I've also read of folks serving vector tiles directly from S3 (e.g. https://gis.stackexchange.com/questions/304483/is-it-possible-to-serve-vector-tiles-directly-from-s3), but I haven't done this personally.
Good luck -- it's a frustrating limitation, but the process of going through these workarounds definitely deepened my understanding of vector tiles, so that's a silver lining.