Thanks for the tips, Johny.
I've tried it all with no luck. I can't really tell if they made any difference.
For some tests at the beggining the ball was flying like crazy indeed. But I believe it was due to me using a gravity scale of 3 on the rigid body of the ball. Also, I made the table much larger.
I am making the table with a grid and a simple mesh library, which has been a good experience. I kept the gravity at 9.8 but the gravity vector is y = -1 and z = 0.6, so I have the effect of the ball falling as if the table was tilted. Above the table I put a simple box collision, because most of the time the ball was flying off from the top.
Sometimes the ball goes throught the walls. That is rare and the continuous cd seems to have fixed it.
Also the flippers works fine most of the time. But when I wait the ball to be right above it and I hard press the trigger, the flipper kind of teleports to the total rotation and the balls stays there at the same place, before starting to fall.
It makes sense since I'm setting the rotation values. I'm actually impressed how it works just fine when I press the triggers more gently.
I believe the solution would be changing the rotation in increment steps, interpolating the values using the delta somehow. But I can't figure that out. Something like a linear interpolation could do it. But I struggle still with some math. For vectors I use the methods godot provides, but what can I use for floats?
I've seen in the docs the formula:
interpolation = A * (1 - t) + B * t
which is the same as:
interpolation = A + (B - A) * t
In my case A = 0 , B = 60, t = Input.getactionstrength("L2").
0 + (60 - 0) * Input.getactionstrength("L2")
60 * Input.getactionstrength("L2")
which is quite obvious
That doesn't help as in practice I am still setting the values directly, not interpolating them inside the engine.