about branch, 'release' or '5.4' which is newer?

I think ‘release’ is updated only to the latest public release (actually 5.4.3). It is frozen until a 5.4.4 is decided.

‘5.4’ on the other hand contains the latest updates for the 5.4 (the in-work “5.4.4” if you want). After some time, Epic will decide it is good enough, tag it as 5.4.4, and merge it into ‘release’. ‘5.4’ will then become the basis for upcoming “5.4.5”, and ‘release’ the frozen “5.4.4”.

ue5-main is for the future UE5.5 .