You can do the very same - write your kernel in .cu. Put the op registration in the .cpp.
I usually recommend to use load/load_inline with is_python_module=False as the first step to move from C++ extensions to Custom Ops.
Best regards
Thomas