Spatial layers has lower resolution

Just to confirm that you are passing proper encodings to the producer, enable spatial layer 0 in the consumer and check the received resolution.

TIP: The fact that you tell getUserMedia to generate 640p video does NOT mean that the encoder is gonna encode the same resolution. It may generate a minor resolution (even for the highest simulcast stream) if there are CPU issues or uplink limitation/issues.