Ok, python people.
bpy.ops.screen.new()
Accepts NO parameters. Useful parameters, like a name…
Similarly,
x = bpy.ops.screen.new()
Does NOT return an object -x- which, in turn, can be named.
So!
Here’s what I had to do:
Create a set variable of the screens.
Create new screen
Hash the difference between the set and the new screen set
Name the odd one out.
screen_set = bpy.data.screens.items()
bpy.ops.screen.new()
new_screen = [x for x in bpy.data.screens.items() if x not in screen_set]
bpy.data.screens[new_screen[0][0]].name = 'Pudding'
That seems like a lot of faffin’ about to name a screen.
A more elegant means exists, perhaps?