I converted SCT/SCTD to Ace3 in about an hour with minimal issues. However, I am running into a lot of issues with hooks. It very well could be that SCT's code base is too old and some of its hooking just needs to be reworked, but before I go down that route I wanted to see if there were any fundamental differences between the 2.1 and 3.0 versions.
I cannot find any documentation on the 3.0 version, but all the method calls appear to be the same. However, the hooks are definitely behaving differently than in 2.1. Sometimes they seem to call the hooked method first without a manual call in the hook, while other times it does not call the hooked method unless manually called. I'm not dealing with Secured Hooks in these cases either, just hooks between SCT and SCTD. SCTD is probably going away soon, but would like to understand what is happening anyway.
Also, 3.0 does not seem to allow me to Hook a chatframe's "AddMessage" the same way as 2.1 does. I can get it to work with the Secure Override, but its doubling all messages. This could be a change in 2.4 since that is where I am testing, but my other chat mods (non Ace) are hooking AddMessage without causing issues or taint (as far as I can tell) and only seeing the one message.
Basically, AceHook-3.0 has normalized the behavior between Hook() and SecureHook() (original called first, hook called later). You need to use RawHook() to completely replace the original function with your own.
The new :Hook is a "safe" pre-hook, that will call your function first, then the original function (or another hook) - so you do not need to call the hooked function at all (or you get double results).