I wish I was happier with the answer. Went through Smyth and Kühner–Blass.
If the -της suffix is applied to a noun, and indicates someone associated with the noun, e.g. ναύ-ς ‘ship’ > ναύ-της ‘sailor’, the stress is penult.
If the -της suffix is applied to a verb, and indicates the agent of a verb, the stress is usually on the ultima, e.g. μανθάνω ‘learn’ > μαθητής ‘ student’; but occasionally penult: τίθημι ‘place’ > νομοθέτης ‘lawgiver’.
Kühner-Blass §107.4.e does attempt some rules on the distribution of stress in that context. Are you ready?
Ausführliche Grammatik der Griechischen Sprache
Why yes, it’s in German. Summarising:
- Penult: pure, short verb roots: ὑφάντ-ης, ἀγύρ-της, ἐπι-στά-της, νομο-θέ-της, ἐπι-βά-της, λωπο-δύ-της, προ-δό-της, ἐφέ-της, ἐρέ-της, ἐργά-της, δεσπό-της.
- Exceptions: κρι-τής, ὑπο-κρι-τής, but ὀνειρο-κρί-της; εὑρε-τής. Attic stressed on the ultima some forms derived from liquid verbs (verb roots ending in l,n,r): καθαρτής, ἀμυντής, εὐθυντής, πραϋντής, ψαλτής, φαιδρυντής, καλλυντής, ποικιλτής.
- Note that some of these exceptions were undone in later Greek: εὑρέ-της, ψάλτης.
- Ultima: verb roots with a long last vowel, or with an /s/ before the ending, particulary common in verbs ending in -ζω: ποιη-τής, μαθη-τής, θεᾱ-τής, μηνῡ-τής, ζηλω-τής, δικασ-τής, ὀρχησ-τής, κτισ-τής.
- Exceptions: ἀή-της, ἀλή-της, πλανή-της, δυνάσ-της, κυβερνή-της, πλάσ-της, ψεύσ-της, πενέσ-της, αἰσυμνή-της.
- And a few more exceptions got added later too: κτίσ-της.
So there was originally a phonological condition on whether the agentive suffix was accented or not; and as so often happens in the history of Greek, that rule was blown away to kingdom come, even within Classical Greek.
OP gave the example of ουρανοξύστης, ‘skyscraper’. The word for ‘scraper’ is derived from the verb ξέω, aorist ἔ-ξυσ-α. In Attic, it used the older agentive ending, ξυσ-τήρ. ξύστης violates the rule in Kühner, where a sigma means ultima stress; but by the time the form ξύστης was used, the phonological conditioning was long out the window. The form first shows up, as ξύστης, in the third century AD (LSJ Supplement), though in the 17th century vernacular Somavera dictionary, it is accented “correctly” as ξυστής. It shows up as ξύστης in Trapp’s Lexicon of (Late) Byzantine Greek, as do the compounds ὀδοντοξύστης ‘toothpick’ and μαρμαροξύστης ‘marbleworker’.
I think the answer to your question, OP, is there is a usual pattern to the accents, but it all too often ends up random.