Relays to select the appropriate combination of series/parallel heating elements would be, in my opinion, the most logical solution. Robust, reliable, and inexpensive to implement compared to the other solutions.
All you need is a relatively simple voltage detector circuit, to switch the relays when the input voltage is below 130V. Note that I would design the circuit in a fail-safe manner, by making the normal state of the relays (de-energized) for 240V, and then energize the relays for 120V configuration. That would avoid smoking the heating elements should the voltage detector circuit fail when the unit is powered from 240V.
I don't know what your intended application is, but do keep in mind that at 120V, 2kW is 16.7A. This, at least in most of North America, would require a 30A receptacle as that is above the maximum allowed for a continuous load even on a 20A circuit (80% of 20A is 16A).