I'm also using the velocity and tweening float for jumps. Fixedupdate uses fixed timestep, if it's set to default 0.02 that's updating physics calculations 50 times per second on 60 fps, so i believe the proper way it to set it to 0,016 so the update timestep matches the fixedupdate timestep (at least in theory).
Anyway, when i use trigger 2d it's not precise. I can fix it by making a bigger collider, but jump speed is tweening to 0, so what works when hitting a ceiling 1 unit away does not work when hitting a ceiling that's 3 units away when the player is already slower.
Also, raycast2d action uses update, i don't know if it would be worth a try changing it to work on fixedupdate.
Whatever i try, trigger2d with colliders or raycast2d, i don't get consistent and precise results :/