My First Solution (Hacky Hack Hack)

I've left the handleSubmit value at true, because the WYSIWYG editor is rendered first.

The following is added to the editCodeClick function, which is almost a direct copy of lines around 5000 of editor-debug.js. The only difference is that I'm making a decision based on the state variable, and not the exec variable.

if (this.get('element').form) {
    if (!this._formButtons) {
        this._formButtons = [];
    }
    if (state == 'off') {
        Event.on(this.get('element').form, 'submit', this._handleFormSubmit, this, true);
        var i = this.get('element').form.getElementsByTagName('input');
        for (var s = 0; s < i.length; s++) {
            var type = i[s].getAttribute('type');
            if (type && (type.toLowerCase() == 'submit')) {
                Event.on(i[s], 'click', this._handleFormButtonClick, this, true);
                this._formButtons[this._formButtons.length] = i[s];
            }
        }
    } else {
        Event.removeListener(this.get('element').form, 'submit', this._handleFormSubmit);
        if (this._formButtons) {
            Event.removeListener(this._formButtons, 'click', this._handleFormButtonClick);
        }
    }
}

This code mixes the best of both worlds by switching between handleSumbit true and false using the exact same methods that were used to create the listeners.

Now, both previous text cases should work. You should be able to save from both the WYSIWYG view and the code editor view without having to toggle.