Lo descubrí. selectionStart y selectionEnd hicieron el truco:
var activeObj = canvas.getActiveObject(); var caretPositionStart = activeObj.selectionStart; var caretPositionEnd = activeObj.selectionEnd; activeObj.enterEditing(); activeObj.insertChars("HI", null, caretPositionStart, caretPositionEnd);