Matt,
Nice work. My suggestion would be to use class variables (@@Matt_Model_Toolid, @@Matt_Model_Toolid2) or instance variables (@Matt_Model_Toolid, @Matt_Model_Toolid2) rather than global variables. Note that class variables must be declared right after the class is declared:
class Matt_Observer < Sketchup;;ToolsObserver
@@Matt_Model_Toolid = nil
@@Matt_Model_Toolid2 = nil
def onActiveToolChanged (tools_object, toolname, toolid)
# ETC...
but instance variables can be delcared anywhere in the class methods.