So a few days and many test prints later, I'm getting slightly better results.
Before, my test hexagons (10mm point-to-point) were coming out with about 0.6mm variance face-to-face. That is, say I printed a 10mm hexagon measured point-to-point, measuring the width at the flat faces I'd get values like 9.0, 8.4, and 8.7.
Now, after much tweaking and testing, I'm managing to get the same hexagon to print with dimensions closer to 8.8, 8.6, and 8.5 (nominally they all should be about 8.6mm, but I realize there are tolerances involved). I can be happy enough with this amount of error given the type of machine this is.
What did I do? Well, I don't know exactly what helped most, but I did all of these things:
Leveled my X-axis horizontally against the bed
I didn't fuss with using the !@#$ing power supply to do this. Yeah, I'm a rebel I went to the machine and told it to "Home axes". Once power was off to the steppers I moved the bed centered under the X-axis, slid the extruder carriage out of the way (and removed the extruder) and turned the vertical screw by hand to raise and then lower it straight down on my bed. I then loosened the X-axis arm screws, turned the screw a bit more to make it level with the bed and cranked back down on the screws.
I then went back in and adjusted my Z-offset again to accomodate the new leveling. I've had to go back and adjust my Z-offset a couple times since then since I'm not sure I got the screws cranked down quite tight enough (or my X axis is now starting to droop like some people have complained), and I've had to tweak the leveling a little.
So, this may be a work in progress, but I'm seeing better results.
Aligned my X-axis with the edge of the Y-bed
So wiley's suggestion was that maybe my X and Y axes were not perfectly perpendicular, causing my print area to be stretched in certain places. So while I had the X-axis loose, I lowered the X arm all the way down to the bed and slid the bed up against the beam until the clips that hold the bed's glass touched the arm. Once that seemed square I checked the horizontal level again and re-tightened the X-axis.
Messed with my Y-bed glide bars
I noticed that my Y-bed had a bit of play, allowing it to twist around just slightly. I already have the cover plate for the Y-axis off (after testing for backlash), so I loosened the four screws and both ends of the bars, slide the Y-bed all the way to the back (as far as I can and still have clearance anyway), pushed the bars apart from each other and re-tightened the screws on that side. I repeated the process at the front, sliding the bed forward, spreading the bars, and re-tightening the screws.
Printed a new Y-axis idler
Since I was still suspecting a small amount of Y backlash, and my test prints did seem to be getting better, I took the measurements and printed off a new idler pulley to insert into the Y axis.
This idler is 2mm larger in diameter than the old one, to increase the tension on the Y belt just slightly. It installed easily after cleaning up the inner hole slightly and seems to be working fine. There's not enough clearance in the Da Vinci Jr to install one of those clip-like tensioners that just clip onto the belt and effectively shorten it, and the tensioner pulleys at the front and back of the Y-belt are not adjustable and plain useless, so replacing one of the idlers was my best option (there are two, right on either side of the stepper motor that keep the belt tight against the toothed wheel).
In case you're wondering the diameter of the part of the idler that touches the belt is now 12mm in diameter, and my printer printed that within about 0.1mm tolerance on either side. I don't think I can ask for much better accuracy than that on that kind of part.
What's left?
Uh. I don't know. My dimension accuracy is better, but still not perfect in my hexagon test. That might owe to the fact that it's such a small part, or that small hexagons in particular seem to be difficult pieces to print (whether because of slicer inaccuracies or mechanical tolerances). Small squares (side=10mm) and circles (r=10mm) seem to print within 0.1mm tolerance or close to it, so maybe it's just the nature of this kind of piece.
I did notice one other issue that I've started playing around with fixing, but isn't a huge concern. I switched to using "Random" alignment in my Slic3r settings, which starts each layer at a random point on the shape. I also have "External Faces First" enabled to achieve slightly better dimensional accuracy. Doing this it became obvious (during a test print of a 50mm square outline) that I was getting extruder "zits", where too much is being extruded at the very first position of a layer leaving bumps on the exterior of the piece.
So I played with the "Extra length on restart" option, setting a negative value to decrease the amount of extrusion here. Now, strangely, a high value (-1.4mm) helped tremendously on my 50mm square, getting rid of the zits almost entirely, probably because of the long straight sides. But the same setting on smaller pieces with lots of changes in direction ruined those pieces, under-extruding by about 50% and making them just a weak husk of what they should be. So I've reset that back to 0 for now and I'll deal with the zits later.
So that's my story. So far.