Androidで常に最前面に表示させるようなOverlay表示をするために、ServiceのonStartCommandに次のような実装をしています。

// Viewからインフレータを作成する
LayoutInflater layoutInflater = LayoutInflater.from(this);

// 重ね合わせするViewの設定を行う
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
    WindowManager.LayoutParams.WRAP_CONTENT,
    WindowManager.LayoutParams.WRAP_CONTENT,
    WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
    WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
    | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
    PixelFormat.TRANSLUCENT);

// WindowManagerを取得する
mWm = (WindowManager) getSystemService( Context.WINDOW_SERVICE );

// レイアウトファイルから重ね合わせするViewを作成する
mView = layoutInflater.inflate( R.layout.service_overlay, null);

// Viewを画面上に重ね合わせする
mWm.addView(mView, params);

この時、service_overlay.xml

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="stack overflow" />

</RelativeLayout>

のように全画面を覆い尽くすTextViewを配置すると、TextViewの下にあるButtonにはタッチイベントは渡りますが、Buttonの範囲外をタッチしても通常のレイヤーにあるアプリにタッチイベントが渡りません。

TextViewを削除して、Buttonの範囲外をタッチすれば、通常のレイヤーにあるアプリにタッチイベントは渡ります。
このことから、ルート要素であるRelativeLayout自体はタッチイベントを消費していないと予想しています。
そうだとすると、TextViewがタッチイベントを消費していることになるのですが、その下のButtonにはイベントが渡っているので、TextViewもタッチイベントを消費していないということになります。
ですが実際はタッチイベントは渡っていません。

オーバーレイ表示のViewがタッチイベントを消費せず、通常レイヤーのアプリにタッチイベントを渡すにはどのようにすれば良いでしょうか?