Any options for over-riding the username restrictions?

Did you try using encodeURI on the frontend and URI.unescape on the backend?

encodeURI("dave smith") // 'dave%20smith'
URI.unescape("dave%20smith") # 'dave smith'