Personally, I only use apply_impulse in 3D. Thinking also that applied forces run "forever" making it extremely difficult to reset them (especially if they are not applied at the center and therefore adding a torque force as well).
After your question I googled a bit. I assume that you're using the Bullet physics engine (preferences). But basically it should be the same with the godot engine.
According to this (old) discussion:
Forces are actually reset after each physics frame.
I propose that you use
apply_central_impulse() instead in each
_integrate_forces() and scale (=multiply) your force with
This leaves the question open why there are two different methods for force and impulse when each only apply for one physics frame? Honestly, I have no answer to this. If I repeatedly apply impulses in the lowest granularity the physics engine has (frame) then for me this adds up to a force. But perhaps there are aspects in the engine that distinguish even inside a physics frame between a 0-time "impulse" and a frame-time "force".