von der eigentlichen Steuerung habe ich keine Ahnung!
Aber ich würde erstmal zum Eingrenzen schauen, ob es wirklich temperaturabhängig ist oder ob das Problem aus irgendwelchen anderen Gründen immer nach 20 Minuten auftaucht und wie folgt vorgehen:
1.) mit kaltem Motor gemütlich über Landstraße im ECO-Betrieb (heißt das so bei der BMW-Automatik?), also 100 km/h und um die 2000 1/min. Dabei Heizung auf höchste Temperatur und Lüftung an, um die Motortemperatur möglichst langsam ansteigen zu lassen; evtl. auch noch Motorhaube ein paar Zentimeter aufstellen (natürlich mit einem Draht sichern!!!)
Meines Wissens haben alle E46 mit Automatikgetriebe eine Getriebeöl-Kühlschleife im Wasserkühler (Wärmetauscher), daher sollten oben genannte Maßnahmen auch dafür sorgen, dass die Temperatur des Getriebeöls langsamer ansteigt und dein Motor vielleicht erst nach 30 Minuten aus geht.
2.) nächster Tag das genaue Gegenteil: mit kaltem Motor möglichst schnell auf die Autobahn bzw. viel Volllast und höhere Drehzahl, Heizung aus und evtl. Kühler mit einem Tuch abdecken. Natürlich nicht mit ganz kaltem Motor direkt volles Rohr geben 
Ich weiß, ist etwas unkonventionell, aber ich fände es für die weitere Diagnose extrem wichtig zu wissen, ob es ein temperaturabhängiges Problem ist!