I finally resolved this! My gut feeling was right: I was overthinking it.
Step 1: Remove all of the code example above and just have a simple:
void FixedUpdate()
{
float moveHorizontal = Input.GetAxisRaw("Horizontal");
float moveVertical = Input.GetAxisRaw("Vertical");
movement = new Vector2(moveHorizontal, moveVertical);
movement.Normalize();
rigidbody2D.velocity = movement * Speed;
}
Step 2: In your assets folder, go to Create > Physics2DMaterial. Create one.
Step 3: Click your new material, and call it whatever you want. I called it "Frictionless". Set Friction to 0, and make sure "Bounce" is 0.
Step 4: Drag your new material to any of the "Physics Material (2D)" fields in any of the objects involved in the equation.
You're done!