4.- Despite xl complaining about the kernel not being in bzImage format it still seems to run (I get the same error message from the MirageOS but the image loads and runs OK). However it crashes and I have no way of seeing what's going on. Is there any way to debug my guest startup inside Xen?
There are several options depending on your preference.
in your domain configuration file will leave the VM state to be inspected. "coredump-destroy" and "coredump-restart" are also alternatives.
xl dump-core <domid> <file> should create an Elf CORE file representing the domain.
The gdbsx set of tools (tools/debugger/gdbsx) allow you to attach gdb to a running Xen domain.
Getting a PV console working (see the early code from MiniOS) would allow you to print inforation.
Failing a PV console, if you build yourself a debug version of Xen, you can use the console_io hypercall from your guest and get debugging messages into the Xen console.
Hopefully that should be enough to get started with debugging.