Если я сделаю обёртку над Sender, у которой send(&mut self) и вручную заимплементирую для неё Sync, это будет гарантировать, что у меня send() не вызывается многократно параллельно?
Нет, в общем случае не можешь. Пример: Rc, он при копировании выполняет потоконебезопасные операции. Следовательно, если два потоко одновременно скопируют Wrapper<Rc<...>>, то произойдет UB