Attached is a script for untriangulating faces.
It uses a parameter called "tolerance" that should be added by Object->Attributes... Click the "new" button, type "tolerance" (case is important), select float, and put a suitably small value like 0.5 as the value. The tolerance parameter is the measure of how "non-planar" the four points in the un-trianglulated face are.
The script creates a copy of the original mesh that is untriangulated. On the console output, it will output a list of all the tolerances found in the mesh to help you select the correct value for your mesh. If you select a tolerance that is too low, simply delete the created mesh copy, change the tolerance value by going to Objects->Attributes..., and re-run the script. Or you can delete the original mesh, change the tolerance value and re-run the script.
The script is not perfect. It often cannot determine the best adjacent face to combine with if the tolerance values are too high. It is often necessary to use repeated applications of the script with ever increasing tolerance values.
Please let me know your feedback.