Ответ 1
Глядя на справочные документы, класс Button расширяет TextView. Оттуда кнопка добавляет несколько стилистических изменений (например, фоновое изображение по умолчанию, дополнительное дополнение), чтобы обеспечить более быструю адаптацию к вашим проектам.
IMO, тот, который вы решите использовать, должен зависеть от того, как вы хотите создать свое приложение. Если вы используете тему по умолчанию с минимальными стилистическими изменениями, кнопки можно быстрее визуализировать; с другой стороны, если вы много настраиваете, TextView позволит вам сделать это намного проще.
** Редактировать: ** GrepCode показывает, что с точки зрения функциональности нет разницы, кроме имени класса.