Try to reRender the <rich:hotKey> too.
Why? When the <rich:hotKey> is first rendered, it finds the client-side control based on the jQuery selector "#searchfield" and attaches an event to it. When the AJAX request reRenders the page, the old control is totally replaced, together with the old event handler.
ReRendering the <rich:hotKey> will (hopefully) re-establish the event handler as well.
Actually, what I needed to do, was to remove the rerender for my code... both the jsfunction and hotKey was in a group that was rerendered... Removing that group from rerender and now it works....