I know this isn't quite your question, since you want to call ManuallyDrop::take, not ManuallyDrop::drop, but the below discussion will come back around. Also, most of the below is an exploration of your literal question, I'll offer something else at the end.
Suppose you call ManuallyDrop::drop on the result of your method. That would end up leaving a &mut T reference pointing to a destructed value. I'm not quite sure what's left of a value after you run its destructor, in general... at the very least, I know that running Box's destructor results in the remaining value being data which is not valid for type Box. (By which I mean, the compiler knows about some of Box's invariants, and the remnant of a destructed Box does not satisfy Box's invariants.)
So, you'd have a &mut T which might not point to a valid T.
Now, is this sound? Well, right now, on the current compiler version, yes. And the opsem team is currently leaning towards deciding that this is sound, but they have not yet finalized that decision: so, as of now, the language does not guarantee that this code is sound; a future compiler version could make it UB.
Consider what would happen if you called ManuallyDrop::take on the value, and then a panic unexpectedly occurred in a scope where the &mut T or &mut ManuallyDrop<T> is still live, such that the taken value is dropped as the program unwinds. Then, when T = Box<_>, even though you didn't drop the original value, calling the destructor of the copy of the box still thoroughly invalidates the original Box value, which is still behind a live &mut Box<_> reference.
So, unless you're extremely careful about edge cases like panics... it'd be easy to accidentally rely on unspecified behavior.
What should you do? I'd recommend directly using ptr::read on a raw pointer to the field(s) of the struct.
Here's the first example in std I could find: rust/library/alloc/src/ffi/c_str.rs at 4ddd4538a881317c622ed674b08300b8fc8dabdd · rust-lang/rust · GitHub
Here's an example in a crate of my own: anchored-leveldb/crates/anchored-leveldb/src/pub_leveldb/structs.rs at 7cc38877ba4670a390474fcd9faad81f3d208e4b · robofinch/anchored-leveldb · GitHub