I did use CharacterBody2D, but there were several issues with the way I want to control the various forces applied to the player. Mostly, how the is_on_floor() flag was very inconsistent sometimes and kept making the bunny bouncy, so I did some workaround to handle that.
Your example is great! If you were to use it in the future, make sure to separate each source of force (ex: jump boost from jet pack, knockback from weapon, player's movement, gravity, etc..) then add them to body.velocity before calling move_and_slide(). This makes managing each force easier and more precise than modifying velocity directly (learn from my mistake 🥲)