OutboundPathProcessor is not appending $options array?
It seems there is a bug report for that. I found a reference to that issue in a inline comment inside LanguageNegotiationContentEntity::processOutbound().

At the moment, after applying the patch from that issue, query parameters get added to the URL as you would expect and without any need to instantiate 'prefix', but fragment doesn't. More work/comments should go into that issue to assist with resolving it.

As an alternative and in order to get fragments to work, you could try extending the Drupal\Core\Routing\UrlGenerator and replace the url_generator.non_bubbling service. (See https://www.drupal.org/node/2026959.)