Got video to work finally with hardware encoder support as well. It is not as smooth as I would like it to, but I do not know what the issue is. I could see that all frames were encoded, so the issue is probably in the encoder or my SD card is slow. Would like some feedback on whether others see some stutters too or not. Updated the second post with new fastboot system images. Also source code is now available on my github, as promised DISCLAIMER: The code has a bunch of hacks and is not very clean, as I did not get much time to clean it up before sharing.

For people with non-nexus devices, you can use the source code to compile your own or here is just the HAL module as a separate download

You also need

media_profiles.xml which should to into /system/etc/ which should go into /system/lib/

Here are the source changes for
--- a/frameworks/base/media/libmediaplayerservice/StagefrightRecorder.cpp
+++ b/frameworks/base/media/libmediaplayerservice/StagefrightRecorder.cpp

uint32_t encoder_flags = 0;
- if (mIsMetaDataStoredInVideoBuffers) {
+ if (0 && mIsMetaDataStoredInVideoBuffers) {
encoder_flags |= OMXCodec::kHardwareCodecsOnly;
encoder_flags |= OMXCodec::kStoreMetaDataInVideoBuffers;