It is also possible to make good progress with a cheap iron and a multimeter, learn about component properties, reading circuit diagrams, and many other relevant skills. Best of all, all of the learning is being done on what was real world hardware at one time rather than circuits designed for learning or that are isolated from the system that they would normally be part of.
Arduino/atmega comes to my mind, just ditch the IDE. Instead program assembly and assemble + program the board using their toolchain. Of course, at first the analog part (CRT, old keyboard) will be missing, but these are not needed to write your own little kernel. However, I did a quick search, and it seems the Arduino can interface with a VGA display: On the hardware side of things this only needs some resistors, and software side could be deemed as an interesting exercise ;-)
And the classic computers run on “human scale” in that they can be understood both in the parts and a whole - perfect for learning.
e.g. the entire concept of CPU registers, translating 1:1 between assembly and machine code, examining C compiler output, low-level debugging, disassembly, etc.
Day one of the course had us download and set up DOSBox, which was brilliant. DOSBox will run on a huge number of platforms and, as you and others suggest, locks you into a very well-known simpler 16-bit system that can't ever change (the games it's meant to emulate would stop working).