To those that come this way after me...
I solved this problem by sending a message with JMS_JBOSS_SCHEDULED_DELIVERY as usual, then having a little bit of code at the top of my MDB that does...
if ( message.getObjectProperty( "JMS_JBOSS_SCHEDULED_DELIVERY" ) != null )
JmsUtils.requeue( message );
...where 'requeue' puts the message back to the end of the queue, omitting the JMS_JBOSS_SCHEDULED_DELIVERY property.
In effect, doing a 'delayed send to end of queue'.