I haven't written it up.

For hobbyists, i think components are tricky. You have two basic options:

1. Linear motors - these are ideal (because it's a high acceleration, low intertia application. the extruders basically weigh nothing), but harder to find. Peopoly has a kit but my experience has not been the best there.
They do seem to be coming down in price, but i haven't yet seen the equivalent of what teknic did with the clearpath steppers, but for linear motors.

2. For closed-loop steppers, you'd be best off with something close to the pantheon - closed loop teknic steppers.

They have a good history at this point (well known in the CNC community), and are now even commonly used in mid-grade CNC machines these days. I've heard nothing but good things about them.

As for real servos, if you want real servos, the problem you hit (relative to the current requirements of the average 3d printer) is not just cost, but the space requirement. You need real servo controllers, and they are all basically built to be in cabinets. So having 6 servo drives is not an insignificant amount of space + power.
It is also severe overkill in some sense. Servos are meant to bring more efficient power usage to bear on the problem of generating torque (for the most part). But you don't need that much torque to drive a 3d printing axis, it weighs basically nothing and the mechanisms used rarely have any meaningful inertia or friction. So while I haven't tried it, i suspect you would be a lot better off with steppers + absolute encoders to ensure positioning (absolute so you don't have to home, and because incremental vs absolute cost is a complete wash at this point).
The servo drives are just basically PID controllers + rotary encoders on the motors anyway. If you instead used steppers, linear absolute encoders, and controlled them by pid, i would bet you could do very well (assuming you can dynamically increase the step resolution as you approach position).

The ball screws and linear rails are easy - you can get cheap c5 ballscrews (which, over this distance, are fine), and pretty much any linear rail will do (a 25mm linear rail can easily work on a 1000lb gantry).

Don't overdo the ballscrews.

The thing about ballscrews that people miss is that while the grades tell you the rough positioning error (which is caused by deviation in the ball track), they have little affect on repeatability, which is still very high. So even C7/rolled/whatever ballscrews are very very repeatable. The ball tracks just aren't ground as precisely, so the deviation from expected distance is higher.

What this means is that if you just map the position error, once, even on a low grade ballscrew, you can correct for it very easily, because it doesn't really change.
(this isn't perfectly true, but is true enough for this purpose).

This is commonly done to get better accuracy out of lower grade ballscrews.

If you do use linear encoders, you don't have to worry about any of this - they will be much more accurate than the ballscrew, especially over this small a distance (ie 300-400mm) and you use their position as the source of truth. In that case, you could easily use c7 or rolled ballscrews.

The thing you won't be able to fix in the end without changing how we think about these printers is the mass. Wood/Metal CNC use mass to reduce vibration because it's very effective. While input shaping is great, in the end, you will hit the limit of the acceleration/movement speed you can practically achieve unless you are willing to add like 1000 pounds to your printer to absorb vibration. This is not fixable. you can't make the vibration 0 and the energy has to go somewhere. You can see this on linear motor based printers. Even without belts and lots of moving parts, they still can't do more than about 300mm/s print speed without vibrating too much.

I would bet with better isolation/etc we'll get towards 500mm/s, but we will hit a limit that will require increasing mass in practice (IE whether you bolt the printer to the floor or built a concrete base or whatever)