I found this great tutorial for extending GMarkers in v2 google maps: http://www.googlemapsbook.com/2007/01/22/extending-gmarker/
Unfortunately, in v3 the set-up of a marker is very different (eg you have to pass in the map it will be added to as a parameter, so can't have a standalone google.maps.Marker object to act as a prototype, or at least not until after your map has initialised).
Does anyone know how to extend a google maps v3 marker?
*edit - turns out I was wrong about the map being a required parameter. I'll post my v3 extension as an answer later and mark this as a community question