Navier-Stokes for cylinder flow does not converge/Newton method

I believe your boundary conditions are applied wrongly in non-linear problem.

You can start by verifying this claim by using:

    solve(L == 0, w, bcs)

which is inefficient, but shows that the problem should converge.

Why don’t you just use NonlinearVariationalProblem instead of creating your own assembler?
See for instance:
Switching from Fenics to FenicsX for Incompressible Mixed Element Code for an example