A couple of thoughts...

Your pulleys are going to become a problem as is the thickness of the cord. The thickness will make it wander all over as it winds on the spools. I would suggest something more pulley like, I glued washers to a nut.. And thinner line. I found 12 pound fishing monofilament line to be easy to work with.

Assuming you are not going to put in limit switches, I would also suggest a four way navigation pendant so that you can easily set to 'home' position.

As you can see, without radial compensation, horizontal movement actually ends up curved as a function of the three tensors (right, left, and gravity) instead of the two tensors which exist if the system moved the pen with, say, a gantry or other two tensor solution. That is where Heron's comes into play. The pen location is the vertex of two imaginary right triangles formed by the vertical tensor of gravity. Heron's formula allows you to calculate the height of the triangle formed by a side and the vertical, which gives you your y coordinate, and then the x is calculated using Pythagorean. Just remember the third tensor, gravity, will form a right triangle to the horizontally equal tension lines. Gravity makes the invisible ninety degrees from the horizontally mounted motors. This by no means was my idea,but the idea of another wall plotter maker (have to find the link, it's in my stuff there someplace), but was written so as to perform all the math on an attached PC, the plotter being a printer device, the computer simply sent pulses to a parallel printer port on the PC, which was linked directly to the stepper motor driver, not an intelligent device. Arduino easily handles the math, and although I never did write a HPGL or GCODE interpreter in, doing so is pretty standard, they are delimited text files of coordinates. Parse and go. Even performing the math on the Arduino, I needed to put in delay statements to slow the movement speed to a reasonable pace, or there's a ton of jitter as the marker drags across the board. Slow and steady...

The offshoot of this is that the most efficient way I have found is to actually calculate the error for each possible right and left tensor (eight possible.. Plus, minus, or stay the same on the right and left tensor), and then move in the direction with the least error, and repeat until the goal error range is met. Lather, rinse, repeat.

Dammit, you just made me need to pull the Frankenbotic Thinganator out of the closet.....