Hi! Thanks for your comments : )
I started using only paths for their behavior, but some time a go I went for a hybrid of that method and rays that check for collisions to make them avoid other cars and the player. In each step, I check what's near each car and take actions accordingly. It made a huge difference, now AI passes each other and racing is much more interesting! Its not perfect but its way better than using only paths. Good luck with your game!