Hi Skopperud,
Sorry it's taken a while for anyone to get back to you. I've had a look into your question, and while there isn't a hold function in custom buttons, there may be a way to set a parameter on the screen when the button is clicked (static variables don't seem to work), and then that parameter is checked each time the button is clicked to determine what actions to take. Here's some pseudocode:
If Param = 0 Then
Set Param = 1
Do stuff
Else
Set Param = 0
Do other stuff
End If
#DashBoard