In Python, the Dev UI was showing traces for every keystroke in the Prompt editor because RealtimeSpanProcessor exports spans one-by-one as they start (on_start), before span attributes have been set. This means the server receives child model spans before the root prompt span's genkitx:ignore-trace: true attribute is known.
Deviates slightly than JS because JS filters at telemetry server level. Python filters out before it gets there. Not sure why there's a difference but wasn't able to get it to work when supplying labels the same way as JS. Need to take a closer look to see why.