Does GCP have a service to provide durable messaging where messages don't expire after a short period? I've looked into PubSub, which has a maximum retention of 31 days on the topic level. While it's better than 7 days, it's still hardly could be considered durable messaging.
No, GCP does not have a service to provide durable messaging, with a maximum retention policy of > 31 days.
Although GCP allows third-party integrations like Apache Kafka. Apache Kafka - Integration guide GCP
Apache Kafka allows you to configure the retention period based on your needs.