For best routing support, ways need to “touch”, or intersect.
Layers should be used when ways don’t need to intersect.
Also, try to avoid loopings (A way which cuts itself)
e.g. A road that ends in a loop. Cut into 2 different ways. One is a line, the other is a closed loop.
Make sure you tick and fix the following issues:
dead-ended one-ways
almost-junctions
ways without nodes
intersections without junctions (all)
overlapping ways (all)
loopings
layer conflicts
I’m currently using a lot the Openstreetmap map for navigation in my android application Navdroyd to navigate from one point to another.
Just remember that turn restriction can take a while till they are applied to the routing. weeks , month