How do I use python to get the dimensions of a text object immediately after it is created?
Since there's no .update() method for Curve objects, you need to trigger a scene update:

t1.body = "Hail Bob!"
bpy.context.scene.update()
print(o1.dimensions)


Result:

&lt;Vector (3.6080, 0.7000, 0.0000)&gt;