After some experimentation I noticed that waypoint names greater than 29 characters crashed the NUVI 500 (it causes a line wrap on the screen which almost always caused a crash). I created a GSAK macro that reads the open database and truncates any GSAK waypoint name (which exports to the Groundspeak:name) to a max of 29 characters. I've had no crashes since I started using it. The Log Attempt feature works fine, the resulting geocache_visits file on the nuvi records the GCxxxxx name. I have %code for waypoint name (the max 15 chars did not seem to make a difference). Here is the macro:
# GSAK Macro LimWPNameLen
# This was written for and tested on a Garmin NUVI 500 (running V3.1)
#
# Loading Geocaches into Nuvi via exported GPX file (V1.0)
# I like to use the built-in Geocaching capabilities (vs POI) of the Garmin NUVI 500.
# I File/Load my GSAK database from Geocaching.com Pocket Queries.
# Then File/Export to GPX file format, with <500 limit (Important!). I recommend 450
# so you have room for other waypoints.
# I use Windows File Explorer to copy the generated GPX file to the connected NUVI x:/Garmin/GPX folder.
# The "Where To?"/"Geocaches" option works great with decriptions/logs/hints/logging available.
# Also, the Geocaching symbol displays on Map and can be selected.
#
# Issue and Resolution
#
# I found that long Waypoint Names (longer than one screen line ~ 29 chars) would cause display issues and/or
# instability/rebooting of the NUVI when the Geocache entry with the long name was selected.
# This macro loops thru the open database and simply truncates all Waypoint Names to a max of 29 characters.
#
$x = 0
$y = 0
Goto Position=Top
While not($_EOL) # Loop through the entire file
$x = $x + 1 # count the number of waypoints
If (Len($d_Name) > 29)
$d_Name = Left($d_Name, 29) # truncate long Waypoint Names
$y = $y + 1 # count the number of changes
ENDIF
Goto Position=Next
EndWhile
MsgOK Msg=$x records and $y long Waypoint Names Truncated # Display Stats
Goto Position=Top