It would be nice if the debug console had a little help page of itself, to describe the syntax to issue commands (also the nested ones), and a disclaimer that usage can be dangerous.

Maybe add a debug-console-only command like help that shows how to use nested commands and potentially other advanced tricks, and add 'for more information on using this console type XXX'.

See also:
- https://github.com/bitcoin/bitcoin/pull/7783#issuecomment-248274853
- https://github.com/bitcoin/bitcoin/issues/8544#issuecomment-240970925
- #8912 Console command paths cannot be specified correctly with backslashes
{
    Q_OBJECT
public Q_SLOTS:
    void request(const QString &command);
Q_SIGNALS:
    void reply(int category, const QString &command);
};
/** Class for handling RPC timers
 * (used for e.g. re-locking the wallet after a timeout)
 */
class QtRPCTimerBase: public QObject, public RPCTimerBase
{
    Q_OBJECT
public:
    QtRPCTimerBase(std::function<void(void)>& _func, int64_t millis):
        func(_func)
    {
        timer.setSingleShot(true);
        connect(&timer, SIGNAL(timeout()), this, SLOT(timeout()));
        timer.start(millis);
    }
    ~QtRPCTimerBase() {}
private Q_SLOTS:
    void timeout() { func(); }
private:
    QTimer timer;
    std::function<void(void)> func;
};
class QtRPCTimerInterface: public RPCTimerInterface