findpeaks uses more logic internally than just height; it will consider points inside the peak width as being part of the larger peak even if they are numerically greater than the minimum maximum you set. It isn't the tool for determining the N largest values in an array irrespective of relationship spatially; that is a job for maxk. As the other responder noted; use the optional location vector returned to rearrange in ordinal order.
Although it does seem as though an optional 'stable' parameter could be introduced a la unique to return values in their natural order would be a reasonable enhancement.