I was member of the Forth Interest Group even.
At the time it was an amazing tool for embedded systems. I remember that around 1990 I wrote a multitasking kernel that included "language extensions" to define a special kind of word, a TASK.
A task would have an initialization section and a runtime section. The initialization section would be run once when the process was created in RAM (everything was stored in EPROM) and the runtime was the general code of the task.
It was defined somewhat like this:
TASK THIS_IS_A_TASK
INIT>
do this, initialize this device, blah blah
;INIT
RUNTIME>
the task code, most often a loop of some kind.
;RUNTIME
So, TASK, INIT> and RUNTIME> were actually words that controlled the compiler creating the task description blocks to be stored in EPROM and arranged all the data structures. As part of the system boot one just had to invoke "START-KERNEL" (or something like that, I don't remember the name) and it went through the linked list of tasks to initialize, creating their data structures in RAM, invoking the INIT sections and, finally starting the multitasking kernel itself.
And Forth still has more users than many would suspect. Although I admit that it doesn't fare well with the current level of software complexity.