Which is the best way to generate 2D mathematical surfaces with a different color each side
The following example accomplishes two things that I believe you want to accomplish based on your question.


Eliminate the seam caused by the one sided surface.
Highlight the twisting contours of the mesh so that the viewer can more easily understand it.


Here is the result:
   

Here is what I did.  Once I created a mesh that closely resembles your picture, I used the Solidify modifier. The resulting mesh had a squashed seam where the geometry flipped through itself. I then had to apply the modifier so I could delete those faces and reconnect them to fix the seam. 

At this point I unwrapped it using the 'Reset' option, so each face filled the texture space. This worked well for the most part, but I had to do a bunch of cleanup. Many of the face normals needed to be flipped and/or rotated 90 degrees. This wouldn't have been as much of a problem if I had used a larger offset in the Solidify modifier. The opposing faces were so close to each other that it was difficult to make selections. In hindsight, I should have unwrapped the mesh before connecting the loop to avoid this problem altogether.

The material is pretty basic. I think the key to getting a uniform texture without distortion is to use the Reset method of unwrapping. However this is only true for tileable textures. I used the Brick Texture here. Checker also works or you could create your own. It may be possible to make an organic texture work using Generated Texture Coordinates, which I tried, but I didn't know how to correct the distortion on the twisted section.

I liked how the Brick texture worked because when you use it as the 'Factor' for a Mix between Emission and Transparency, you can play with the settings so that the texture for each face becomes asymmetric, allowing the grid on the opposing face to become visible. If you really want to impress the ladies, try using a MixRGB node between two Brick Textures. 

I settled on this material, because it is pretty simple and just by playing with the sliders in the Brick settings or plugging different inputs from the Geometry node into the Emission strength and color can produce a lot of variety depending on the look you want.