I suggest you visit https://aeroptimal.com/mesh (you must create an account to use this module), where you can create a full structured airfoil mesh - https://youtu.be/4Opu0zk7gFk . You can export .su2 .msh .foam .vtk
I had trouble doing this using the Python API and your .geo file helped. I'm writing this here in case any one also needs help (and in case I eventually forget).
Perform the following steps:
A. Geometry (using gmsh.model.geo)
A.1 Define the points
A.2 Define the lines using the points
A.3 Define the curve loops using the lines
A.4 Define the surfaces using the curve loops
A.5 Extrude each surface using extrude([(2, surface_tag) ...]) (read the API) with the "recombine" option as True
A.6 Now run synchronize() (not later)
B. Meshing (using gmsh.model.mesh)
B.1 Define the transfinite curves on the original lines
B.2 Define the transfinite surfaces of the original surfaces
B.3 Perform a 2D mesh
B.4 Run recombine() in order to get quadrangular 2D elements
B.5 Perform a 3D mesh
An example python file can be found attached. It assumes you have the gmsh (and python-gmsh) package, as well as the math package installed. It does the same as Nils Wagner's .geo file.
An interactive GUI is opened before finishing. Simply close the window in order to finish.
I really wish Research Gate had markdown and code tags, like Stack Overflow...