Add generic task event websocket, improve result view