Profiling is the source of truth. Try setting up a scenario that exacerbates the issues you think are happening.
I've seen shaders cause problems due to branching logic- I'd try disabling them or making them perform a no-op.
I've focused on 2D with Godot, but often with a very high volume of nodes at once.