Thanks everyone for the info. Here’s what I think might be going on…
Just before a host starts an ASIO driver, it has the opportunity to enable/disable the audio channels that it wants to use. In Cantabile, say a driver has 8 stereo ports, but you’ve only mapped the first one, Cantabile will only enable those first two channels. If you stop/restart the audio engine, everything is redone and the same set of ports will be enabled.
If you then go into Options, and change the port assignments and create or remove assignments that cause a different set of ports on the actual device to be enabled, then next time the driver is started a different set of channels will be active.
This seems to be where the RME driver has problems - when the device has been started with one set of channels enabled, stopped and then restarted with a different set of channels.
Some more questions/tests:
What happens if you go to Options and change some of the port assignements, but make sure the same set of channels on the device are active. eg: start with Main Speakers -> ch 1 + 2 and Metronome -> ch 1. Run like that, then go back and map Metronome to ch 1 + 2. That won’t change the active channels on the driver (still just ch 1 + 2) and I suspect it won’t crash.
What happens if in another host you do something that causes the active channels to change? That’d help isolate this to being a Cantabile or RME problem.