1 и 2 можно сделать без Canvas. Вы можете просто перехватить событие click для базового элемента и создать в этой позиции div (с contenteditable) или textarea (приятно стилизованный).
Для номера 3 удобнее всего использовать элемент Canvas.
Это также зависит от того, какой уровень поддержки вы должны оказывать «старым» браузерам. Как вы, возможно, знаете, Canvas не поддерживается в IE8 (и ниже).
Это также зависит от того, хотите ли вы что-то сделать с конечным результатом. Canvas - это холст, и вы можете экспортировать его только как растровое изображение, а не как вектор. Возможно, вы захотите выбрать SVG, чтобы сохранить изображение в векторном формате.