Добавь в figure абсолютно позиционированный блок с полупрозрачным фоном черным и ссылкой, сделай его display: none; При ховере на figure - делаешь его видимым и figcaption меняешь фон и цвет шрифта
У Video в HTML есть свои методы и свойства. Т.е. можно создать любые свои кастомные элементы - кнопки плей, стоп и т.д. и повесить на них обработчики. Вот тут подробнее
Да, так и делается, создается компонент кнопка который имеет дефолтные стили и может принимать стили через пропсы. Если в пропсах есть стили то они записываются инлайново. Можно посмотреть как это реализовано например в библиотеке react-bootstrap