Tiered JITs are meant to allow slower and more aggressive optimizations to be done on truly hot code. However, you're right in that they still cannot spend as much time or resources as an AOT compiler.
The jit must be rerunned every time the process is loaded.
In image based language like smalltalk the jit state can be saved in the image with performance optimizations.
So next time the image is reloaded the jit status is hot.