Well thanks to both you and Badmouth for the suggestions and I did in fact try your suggestion Nitz but came up with a neater one and it's all working smooth! Turns out part of the problem with the errors coming up on exit are to do with the VMU plugins (maple or something like that), which is unfortunate as the problem goes away straight away with the VMU plugins disabled, but you can't save your games d'oh! So for anyone out there having big troubles with Dreamcast, try this setup:
1) Install NullDC and Closemul in the same folder, simply setting key 27 (escape) as the quit key for the emulator.
2) Set up NullDC with the options you want for best performance graphically using the GUI, and set a fixed resolution fullscreen mode (640x480 I use and it's just fine)
3) Disable the second VMU unit on each joypad using the plugins menu (leave the first one in, set the second unit to 'none'). This will reduce crashes anyway by half.
4) Once everything is set up the way you want and tested in fullscreen (from the GUI press ALT+Enter to go fullscreen), get out of the GUI, go into the .cfg file in notepad and set 'launch fullscreen' to 1 and also 'start emulation on startup'. They're not called exactly this but they're similar to this)
5) Once saved, Right-click, go to 'properties' and set the file to be 'read-only'. This is because when it crashes, for some reason the next time the emulator launches it has edited the file to not be fullscreen, which obviously you need, and this negates the need for a hotkey script.
6) Delete the flash bios file in 'data' of the emulator (the readme mentions the exact filename) as for some reason after these changes it will constantly ask you to update the time and date on the Dreamcast every time you launch a game, and may also freeze up. As you've now locked the .cfg file to read-only, it should not ask you for the time and date again and eliminates this freeze possibility.
7) On your desktop, right-click 'my computer', 'properties', 'advanced', 'error reporting', and disable error reporting completely. This will stop the dialogue box popping up that NullDC has crashed each time you exit (which is a problem when you start to launch it from your frontend as you have to click the 'don't send' button each time!)

For good measure, go to your start menu, launch services.msc and disable the error reporting service.
9) Set the commandline for your frontend to launch Closemul and it's mapped quit button, then NullDC with the argument to auto-launch the default image followed by "[rom.extension]". I've not tried other rom formats, but if they are .cdi, they will launch fine this way without the annoying addition of virtual drive mounting with Daemontools or similar, speeding up the launch process.
I'm unsure of some of the filenames here or the exact syntax used but will post them if any noobs need them. This method gave the cleanest and fastest launch/quit sequence I could find and now it's all tied perfectly into my frontend. If you already have a working Dreamcast setup and want to try tidying up any workarounds you've got at the moment, try what I've suggested here as I'm sure it will look much cleaner for you!
Thanks for your help in getting this running, it's been bugging me for over a year!