Somehow I've never had to create an application where a second plot window is created. This was always the intent, and dom.canvases is an array because I thought this was how it was going to be done. It's pretty clear this isn't how it should be done, but I have added a way for a second canvas to be created and inserted into an Autoplot window:
slopesm= createApplicationModel('slopes')
slopesm.dom.controller.reset()
slopesm.dom.controller.copyPlotAndPlotElements( slopesm.dom.plots[0], None, True, False );
addTab( 'slopes', slopesm.canvas )
This will create a second application, but it will not be inserted into a new window as other methods do. Here it is added to a new tab.