There are many types of messages transmitted on 1090MHz (Mode-S and ADSB are the common ones). Once an ADSB message is received the plane will be flipped to ADSB. ADSB planes are not MLATed.
There is a fringe case where the plane signal is so weak and a site only get a few messages that are mode-S from an ADSB plane. The plane will be marked at MLATable and MLAT will be done on it. Once the receiver picks up an ADSB message MLAT will be turned off for that specific plane. This almost never happens.
The reason is that each plane is separately calculated for MLAT. If needs to be 4+ receivers picking up the exact same plane and exact same message for MLAT. Planes always transmit their altitude (it was one of first thing transponders were made to transmit). Usually planes below 3000 feet are extremely hard to MLAT.
If you are using PiAware and using dump1090-fa only, then the classification should be ADSB and not MLAT.
There are cases where feeding data from one receiver to another a plane will be classified wrong.
There are also some strange back MLAT feed cases if you use multiple MLAT services. Some MLAT services report MLAT planes as ADSB and ADSB planes as MLAT.
I think all the recent version of dump1090 and piaware are correct. If you are using an older version of dump1090 you might want to upgrade.
I’m using Dump1090-mutability 1.15, installed as part of the ADSB Receiver Project image. It was installed before I installed the FA portion. I cannot get Dump1090-fa to display anything, it stays waiting forever, but I can see the planes on mutability. That said, I use VRS for viewing the traffic, and this is where I saw the situation described in my opening post.