And the question: if i add <% cached LastEdited %> $Layout <% end_cached %> to Page.ss why StaffPage isn't update when i change StaffItem?
Because it could be that you have cached the block with the last edited date. The nested cacheblocks could have involved some additional caching you don't need. Rather than using a custom cache key could you perhaps experiment with something like
<% cached 'staffitem', Aggregate(StaffItem).Max(LastEdited) %>
You may also want to try and remove the Parent LastEdited Cache (or use <% uncached %> around the middle cache). According to the docs nested caching should work fine but I'm not sure what to look into when it fails.