I guess, the question of what you want a monitor to do is why I'd recommend Forth.
Problems are the issue you want a monitor for. No matter how feature rich a monitor is it will never be able to be flexible enough to solve the typical issues you want a monitor for.
Eventually you need to write some code.
As an example, many machines have some boot code that does a simple memory test. On your troubled machine, it looks to have a memory issue but the machine says it is happy with what it has. As was mentioned, Forth has some RAM memory foot print. If it is working at all, it can be move around. This is not usually true of a typical monitor. It typically has at least one location that it has hard set for stack and variables.
At some time, you may be required to do some machine coding. This is no different in Forth than in a monitor but the idea of Forth is to keep it at a higher level of abstraction. Say you want to bit bang some port. Most monitors will let you do that, a line at a time. Having Forth running, you can quickly do a sequence that is more meaningful for the problem at hand. You can more easily explore the variations of how things work and don't work.
An example of doing this is one of my home projects. I'd gotten a NC4000 processor board that I wanted to add things to. The NC4000 is a 4000 gate stack based processor that was designed specifically to run Forth. It came out at a time when 386 processors were used. On it even code written in high level Forth were many times faster than a 33 MHz 386, using a 4 MHz clock.
Anyway, back on subject. I wanted to add a hard disk. The simplest way to do that was to use a PC disk controller and a typical hard drive. Being cheep, I bought a used XT controller and at the time everyone was dumping their 5Meg hard drives as they were no longer being supported. I wired it up to the bus of the NC4000 got the port specs for the controller and went to work adding a hard drive ( up to this time, I needed a serial link to a PC to store my programs ). I could now experiment with things like formatting, writing and reading sectors. I did this all with a high level language that included an interactive interface that allowed me to experiment until it did what I wanted. I could save source to a mass storage.
Another time, I was working with a Blue Pill ( look it up ). I needed to change the boot clock speed to support a particular interface. The problem was it would hang every time I tried to set the need registers. I needed to single step through the code to find the exact point that it failed. This is something normally done from a monitor but Forth was my monitor ( EForth a simple Forth for such uPs ). I quickly realized, it was a problem of a processor that has a local instruction cache. I needed to add a machine instruction that forced the processor to dump the cache and wait until the write to the port was completed.
An other case. One of my side projects was to restore a piece of 4004 code to put on an actual physical processor and hardware. I'd been searching the web for any interesting 4004 code. Years ago, I found a piece of code used to create an electronic maneuver board ( worth looking up what a maneuver board does ). The listing looked to be printer an an ASR33 with deep ruts on the platen. Many Cs, and 0s looked that same.
In Forth I wrote an assembler and simulator. I added the typical monitor operations of register displays, memory dumps an in some cases indirect memory accesses, into the targets memory. As I hand transferred the code from the poorly printed pdf, I noted locations that I couldn't be sure of the value. Such text as P and F were easy to tell because humans need a lot of redundancy. Computer need it right the first time.
I could now setup registers, memory and execute particular part of the code and see if they made sense. All with a quick interpretive/compiler that was dedicated to running 4004 code. It was a monitor for a machine that wasn't even there. ( I suppose now days one could use Python but with a larger memory footprint. )
I've since built a replica of the machine and I'm able to actually run the ~4K of 4004 code to solve the maneuver board problems.
One might ask, why I didn't just used one of the simulators available on the web. Besides most that are on the web do not faithfully actually run every aspect of the 4004, they have no easy way to do what I call instrument the simulator to be the target machine. They can run code but have no easy way to simulate the target machine. Since I wrote the simulator, I can also easily write the code to be the target machine. In this case it was a scanned display and special keyboard.
So, what is it that you desire a monitor to do? Do you expect to solve interesting problems or just dump and load memory?
Dwight