I've just had a play with bikehike, and it can do just what you want.
Whack in your route as usual, and then use the 'Add coursepoint' link.
Whack it down where you want.
Set the type to 'generic', and give it a name, like 'C1-Anytown'
When you 'Save Route' as a GPX Track, the resulting file looks like this:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<gpx xmlns="http://www.topografix.com/GPX/1/1" creator="bikehike.co.uk" version="1.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">
<wpt lat="57.099190" lon="-2.262380">
<ele>0</ele>
<name>C1-Anytown</name>
<sym>Waypoint</sym>
<type>Generic</type>
</wpt>
<trk>
<name>bikehike course</name>
<trkseg>
<trkpt lat="57.101580" lon="-2.257590">
<ele>73.88</ele>
<time>2013-06-25T20:27:02Z</time>
</trkpt>
etc etc....
I think this will do what you want.
The Coursepoints export as simple Waypoints in the GPX file, with the name you specify.
Name the waypoints so they make sense when truncated on a small screen.
Control_1 -The Gravedigger's Arms, Town A
Control_2 - The Dog's Bollox, Town B
may all be truncated to :
Control_
Control_
Which is not usefull!