ну простая математика же.
подсчитали высоту контента, и постоянно сверяем ее со значением скролла страницы. В плавающем режиме кнопка может быть с фиксированной позицией. При достижении порогового значения скролла может стать абсолютной с прижатием вниз контента. Это один вариант. Второй - использовать липкое позиционирование (position:sticky). Третий похож на первый, но без переключения позиционирования, вместо которого постоянно рассчитывается необходимое положение по вертикали.
В общем, пытайтесь, делайте. Если что-то не получиться - задавайте конкретные вопросы.
Третий вариант будет очень нестабильный, позиционирование кнопки будет не поспевать за действиями прокрутки. Лучше переключать режимы отображения кнопки в начале страницы, в середине и в конце.