Oh my mistake, I thought Node2D is where the offset property came from. Apparently they're only on specific nodes like Sprites.
As vinod says below, use a work around.
Us an empty parent node as a pivot point.
What I would do is use a Position2D node as a parent, since it has a visible cross hair. Put the button as a child of it, set the property "Behind Parent" to true so you can see it, or change it's Z order. Then move your button while knowing that Position2D cross hair is your pivot. After that, go back and do your rotations on the Position2D.