Model 3 uses the motor itself to generate heat for the battery. The inverter sends an inefficient wave form to the motor that generates up to 4 kW (13,600 BTU) worth of heat and sends that to the battery pack via the coolant loop. The Model 3's BMS can vary the amount of heat that it generates.
Are you sure on the motor being the heat source?
The motor is designed for efficiency so the copper winding are sized to reduce resistance. That runs counter to the heating mode where you need resistance to generate heat (unless you go high frequency like an induction cook top). But say for a moment they could pump enough current though the windings to generate X kW of heat, how do they capture the heat? The stator is part of the drive unit casing so you are heating up the entire drive unit (and loosing heat via surface area, normally the drive unit wants to be cooled). The only connection to the glycol loop on that side is the oil/glycol heat exchanger. So once you have warmed up the entire mass of the drive unit, then you start warming the coolant, however you are still losing heat to the ambient environment. Very inefficient.
The inverter is designed for efficiency in the normal operating mode. However, you can also bias the switching devices to a partially conductive state. Instead of the windings with a fixed resistance, you can set the resistance to whatever you need for heating. A single off the shelf MOSFET can handle >1kW if you need the case cool. The amount of circuitry needed is minimal, the parts are already rated to handle fully current switching, and they are direct mounted on the glycol cooling plate so the heating efficiency and responsiveness is much improved.
Anyone know what the the stator resistance is?
At 4kW, if the coils are .01 Ohm, then it needs to loop 600 amps continuously on the motor side.
At 0.1 Ohm it would only be 200 Amps, but if they were that high of resistance then the motor would drop 100V at 1000A = 100kW waste heat (25% of a 400V pack).