Fortunately the solution is simple, unfortunately, you may not like it. You need to increase the spans on your rail curve. For the amount of curvature you have, I would recommend around 10 spans to get the offset accuracy where you want it. You can try different numbers of spans to get the exact tolerance you are after. For construction, I would recommend your attempt number 2, using monorail construction. Skin is fine if you don't need any section to the surface. Another option would be to use a birail, 1 gen curve and 2 rails, but since the offset curve would have history, you could adjust only one curve, and the other would follow along. Of course the only problem with adding the spans is that you need to move a lot more points to make adjustments.
Another thing to consider is how tight you need the tolerance over such a long skinny object. Even though you show a variance of about a bit less then 2%, which seems like a lot, if that is 150 units wide it must be about 5000 long, so the width changing subtly 3 units over a 5000 unit length is not so bad or noticeable but it depends what it is for.
Good luck.