I found the solution on the monotone IRC: when the executable is invoked, it needs to be invoked as a background process by putting '&' on the end. But the "&" needs to be quoted to prevent it being picked up at the wrong point in the init.d script.
This is in contrast to most of the services which do fork themselves. For example, httpd will fork a set of child processes, which will then detach themselves from the console (except if you run them in debug mode). If you run 'httpd' from the command line, it will start up one parent process and ten child processes. The parent will then detact from the console, taking you back to the command line. This is why the init.d script starting the http daemon does not itself attempt to run httpd in the background (i.e. with '&' on the end).
Anyway, having discovered the magic "&", I can now enable and disable the monotone server(s) through SME Server, and can be sure they will be started when the server is booted.
-- JJ